home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 1 / Cream of the Crop 1.iso / BUSINESS / PROLIT10.ARJ / MANUAL.TXT < prev    next >
Text File  |  1992-01-01  |  289KB  |  6,381 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.                   PRO-dVelBase (TM) Lite version 1.0 Reference Guide
  16.  
  17.  
  18.                                   copyright (C) 1992
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.                                  Accelerated Software
  36.                                    15910 - 112A St.
  37.                                   Edmonton, Alberta
  38.                                    Canada  T5X 4X3
  39.                                 Phone: (403) 456-9163
  40.                                  Fax: (403) 457-3582
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.           
  59.                                                                      Page I
  60.  
  61.  
  62.                            T a b l e  o f  C o n t e n t s
  63.                            ===============================
  64.  
  65.  
  66.           Chapter 1:  Introduction  . . . . . . . . . . . . . . .    Page 1
  67.                A. Registration  . . . . . . . . . . . . . . . . .    Page 1
  68.                B. Technical Support . . . . . . . . . . . . . . .    Page 1
  69.                C. How to Use This Documentation . . . . . . . . .    Page 1
  70.                D. Technical Specifications of PRO-dVelBase  . . .    Page 2
  71.                     Database Specifications . . . . . . . . . . .    Page 2
  72.                     Forms . . . . . . . . . . . . . . . . . . . .    Page 2
  73.                     Fields  . . . . . . . . . . . . . . . . . . .    Page 3
  74.                     Tables  . . . . . . . . . . . . . . . . . . .    Page 3
  75.                     Queries . . . . . . . . . . . . . . . . . . .    Page 3
  76.                     Reports . . . . . . . . . . . . . . . . . . .    Page 3
  77.                     Labels  . . . . . . . . . . . . . . . . . . .    Page 4
  78.                     Mail  . . . . . . . . . . . . . . . . . . . .    Page 4
  79.                     Functions and expressions . . . . . . . . . .    Page 4
  80.                     Searches  . . . . . . . . . . . . . . . . . .    Page 4
  81.                     Utilities . . . . . . . . . . . . . . . . . .    Page 4
  82.                E. System Requirements . . . . . . . . . . . . . .    Page 4
  83.                F. Compatibility . . . . . . . . . . . . . . . . .    Page 4
  84.                G. Installation and Running PRO-dVelBase . . . . .    Page 5
  85.                H. Help  . . . . . . . . . . . . . . . . . . . . .    Page 6
  86.                I. Basic Principles  . . . . . . . . . . . . . . .    Page 6
  87.  
  88.           Chapter 2:  Form  . . . . . . . . . . . . . . . . . . .    Page 8
  89.                A. Form/Create . . . . . . . . . . . . . . . . . .    Page 8
  90.                     Database Fields . . . . . . . . . . . . . . .   Page 12
  91.                               Form: Fixed Field Definitions . . .   Page 12
  92.                               Form: Changeable Field Definitions    Page 18
  93.                     Calculated Fields . . . . . . . . . . . . . .   Page 22
  94.                               Calculated Field Definitions  . . .   Page 22
  95.                                    Summary Calculated Fields  . .   Page 22
  96.                                    Formula Calculated Fields  . .   Page 22
  97.                     Editing Text and Fields . . . . . . . . . . .   Page 24
  98.                               Field Identification Characters . .   Page 24
  99.                               Moving Text and Fields  . . . . . .   Page 24
  100.                               Blocking Text and Fields  . . . . .   Page 24
  101.                               Editing Field Definitions . . . . .   Page 25
  102.                               Drawing Boxes . . . . . . . . . . .   Page 25
  103.                               IBM Extended Graphics Characters  .   Page 25
  104.                               Moving to Next/Previous Screen  . .   Page 25
  105.                               Deleting Fields . . . . . . . . . .   Page 25
  106.                     Multi-File Forms  . . . . . . . . . . . . . .   Page 26
  107.                               Foreign       Database      Relationship
  108.                               Definitions . . . . . . . . . . . .   Page 26
  109.                               Scroll Window . . . . . . . . . . .   Page 28
  110.                               Steps to Removing Relationships . .   Page 29
  111.                     Saving a Form . . . . . . . . . . . . . . . .   Page 29
  112.                B. Form/Modify . . . . . . . . . . . . . . . . . .   Page 29
  113.                C. Form/Select . . . . . . . . . . . . . . . . . .   Page 30
  114.                D. Form/Execute  . . . . . . . . . . . . . . . . .   Page 31
  115.  
  116.           
  117.                                                                     Page II
  118.  
  119.                     Appending and Editing Records . . . . . . . .   Page 33
  120.                               Editing Character Fields  . . . . .   Page 34
  121.                               Editing Numeric Fields  . . . . . .   Page 34
  122.                               Editing Logical Fields  . . . . . .   Page 35
  123.                               Editing Single Key Fields . . . . .   Page 35
  124.                               Editing Date Fields . . . . . . . .   Page 35
  125.                               Editing Time Fields . . . . . . . .   Page 35
  126.                               Editing Memo Fields . . . . . . . .   Page 35
  127.                               Editing Fields in a One-to-Many Area                                                                      Page 36
  128.                     Table View  . . . . . . . . . . . . . . . . .   Page 36
  129.                               Altering Table View . . . . . . . .   Page 37
  130.                               Editing and Appending in Table Mode   Page 38
  131.                               Indexed Table Mode  . . . . . . . .   Page 39
  132.                     The Search Menu . . . . . . . . . . . . . . .   Page 40
  133.                               Goto  . . . . . . . . . . . . . . .   Page 40
  134.                               Search  . . . . . . . . . . . . . .   Page 40
  135.                               Search & Replace  . . . . . . . . .   Page 42
  136.                               Search & Delete . . . . . . . . . .   Page 42
  137.                               Search & Undelete . . . . . . . . .   Page 43
  138.                E. Form/Unselect . . . . . . . . . . . . . . . . .   Page 43
  139.                F. Form/Delete . . . . . . . . . . . . . . . . . .   Page 43
  140.  
  141.           Chapter 3:  Query . . . . . . . . . . . . . . . . . . .   Page 45
  142.                A. Query/Create  . . . . . . . . . . . . . . . . .   Page 45
  143.                     Query Editor  . . . . . . . . . . . . . . . .   Page 46
  144.                     To Select Fields for Viewing  . . . . . . . .   Page 48
  145.                     To Sort the Fields  . . . . . . . . . . . . .   Page 49
  146.                     Saving The Query  . . . . . . . . . . . . . .   Page 49
  147.                B. Query/Modify  . . . . . . . . . . . . . . . . .   Page 50
  148.                C. Query/Select  . . . . . . . . . . . . . . . . .   Page 50
  149.                     To Select a Query . . . . . . . . . . . . . .   Page 50
  150.                D. Query/Execute . . . . . . . . . . . . . . . . .   Page 51
  151.                E. Query/Unselect  . . . . . . . . . . . . . . . .   Page 51
  152.                F. Query/Delete  . . . . . . . . . . . . . . . . .   Page 52
  153.                G. Query/Add to Cat. . . . . . . . . . . . . . . .   Page 52
  154.                     To Add a Query to a Catalog . . . . . . . . .   Page 52
  155.                H. Query/Remove from Cat.  . . . . . . . . . . . .   Page 52
  156.                     To Remove a Query from the catalog  . . . . .   Page 53
  157.  
  158.           Chapter 4:  Report  . . . . . . . . . . . . . . . . . .   Page 54
  159.                A. Report/Create . . . . . . . . . . . . . . . . .   Page 54
  160.                     Report Editor . . . . . . . . . . . . . . . .   Page 56
  161.                     Field Placement . . . . . . . . . . . . . . .   Page 57
  162.                     One-to-many Relationships . . . . . . . . . .   Page 61
  163.                     Group Expressions . . . . . . . . . . . . . .   Page 62
  164.                     Saving the Report . . . . . . . . . . . . . .   Page 62
  165.                B. Report/Modify . . . . . . . . . . . . . . . . .   Page 62
  166.                C. Report/Select . . . . . . . . . . . . . . . . .   Page 62
  167.                D. Report/Execute  . . . . . . . . . . . . . . . .   Page 63
  168.                E. Report/Unselect . . . . . . . . . . . . . . . .   Page 63
  169.                F. Report/Add to Cat.  . . . . . . . . . . . . . .   Page 63
  170.                G. Report/Remove from Cat. . . . . . . . . . . . .   Page 63
  171.                H. Report/Delete . . . . . . . . . . . . . . . . .   Page 63
  172.  
  173.  
  174.           
  175.                                                                    Page III
  176.  
  177.           Chapter 5:  Mail  . . . . . . . . . . . . . . . . . . .   Page 64
  178.                A. Mail/Create . . . . . . . . . . . . . . . . . .   Page 64
  179.                B. Mail/Modify . . . . . . . . . . . . . . . . . .   Page 66
  180.                C. Mail/Select . . . . . . . . . . . . . . . . . .   Page 66
  181.                D. Mail/Execute  . . . . . . . . . . . . . . . . .   Page 66
  182.                E. Mail/Unselect . . . . . . . . . . . . . . . . .   Page 66
  183.                F. Mail/Add to Cat.  . . . . . . . . . . . . . . .   Page 66
  184.                G. Mail/Remove from Cat. . . . . . . . . . . . . .   Page 66
  185.                H. Mail/Delete . . . . . . . . . . . . . . . . . .   Page 67
  186.                I. Mail/Import Text File . . . . . . . . . . . . .   Page 67
  187.  
  188.           Chapter 6:  Label . . . . . . . . . . . . . . . . . . .   Page 68
  189.                A. Label/Create  . . . . . . . . . . . . . . . . .   Page 68
  190.                B. Label/Modify  . . . . . . . . . . . . . . . . .   Page 72
  191.                C. Label/Select  . . . . . . . . . . . . . . . . .   Page 72
  192.                D. Label/Execute . . . . . . . . . . . . . . . . .   Page 72
  193.                E. Label/Unselect  . . . . . . . . . . . . . . . .   Page 72
  194.                F. Label/Add to Cat. . . . . . . . . . . . . . . .   Page 72
  195.                G. Label/Remove from Cat.  . . . . . . . . . . . .   Page 72
  196.                H. Label/Delete  . . . . . . . . . . . . . . . . .   Page 72
  197.  
  198.           Chapter 7:  Utilities . . . . . . . . . . . . . . . . .   Page 73
  199.                A. Append  . . . . . . . . . . . . . . . . . . . .   Page 73
  200.                     Append/Create . . . . . . . . . . . . . . . .   Page 73
  201.                     Append/Modify . . . . . . . . . . . . . . . .   Page 74
  202.                     Append/Select . . . . . . . . . . . . . . . .   Page 74
  203.                     Append/Execute  . . . . . . . . . . . . . . .   Page 75
  204.                     Append/Unselect . . . . . . . . . . . . . . .   Page 75
  205.                     Append/Add to Cat.  . . . . . . . . . . . . .   Page 75
  206.                     Append/Remove from Cat. . . . . . . . . . . .   Page 75
  207.                     Append/Delete . . . . . . . . . . . . . . . .   Page 75
  208.                B. Post  . . . . . . . . . . . . . . . . . . . . .   Page 75
  209.                     Post/Create . . . . . . . . . . . . . . . . .   Page 76
  210.                     Post/Modify . . . . . . . . . . . . . . . . .   Page 77
  211.                     Post/Select . . . . . . . . . . . . . . . . .   Page 77
  212.                     Post/Execute  . . . . . . . . . . . . . . . .   Page 77
  213.                     Post/Unselect . . . . . . . . . . . . . . . .   Page 78
  214.                     Post/Add to Cat.  . . . . . . . . . . . . . .   Page 78
  215.                     Post/Remove from Cat. . . . . . . . . . . . .   Page 78
  216.                     Post/Delete . . . . . . . . . . . . . . . . .   Page 78
  217.                C. Setup . . . . . . . . . . . . . . . . . . . . .   Page 78
  218.                D. Re-index  . . . . . . . . . . . . . . . . . . .   Page 79
  219.                E. Database Pack . . . . . . . . . . . . . . . . .   Page 79
  220.                F. Clone . . . . . . . . . . . . . . . . . . . . .   Page 79
  221.                G. Zap . . . . . . . . . . . . . . . . . . . . . .   Page 79
  222.  
  223.           Chapter 8:  Options . . . . . . . . . . . . . . . . . .   Page 80
  224.                A. Change Dir  . . . . . . . . . . . . . . . . . .   Page 80
  225.                B. Recalc  . . . . . . . . . . . . . . . . . . . .   Page 80
  226.                C. Flush . . . . . . . . . . . . . . . . . . . . .   Page 80
  227.                D. Printer Setup . . . . . . . . . . . . . . . . .   Page 80
  228.                     Printer Setup/Create  . . . . . . . . . . . .   Page 81
  229.                     Printer Setup/Modify  . . . . . . . . . . . .   Page 81
  230.                     Printer Setup/Delete  . . . . . . . . . . . .   Page 82
  231.  
  232.           
  233.                                                                     Page IV
  234.  
  235.                E. Save WorkArea . . . . . . . . . . . . . . . . .   Page 82
  236.                F. Quit  . . . . . . . . . . . . . . . . . . . . .   Page 82
  237.  
  238.           Appendix A:  dBASE (TM) Naming Conventions  . . . . . .   Page 83
  239.  
  240.           Appendix B:  Formulas and Functions . . . . . . . . . .   Page 84
  241.                A. Formulas  . . . . . . . . . . . . . . . . . . .   Page 84
  242.                B. Constants . . . . . . . . . . . . . . . . . . .   Page 84
  243.                     Numeric Constants . . . . . . . . . . . . . .   Page 84
  244.                     Character Constants . . . . . . . . . . . . .   Page 84
  245.                     Logical Constants . . . . . . . . . . . . . .   Page 85
  246.                     Date Constants  . . . . . . . . . . . . . . .   Page 85
  247.                C. Operators . . . . . . . . . . . . . . . . . . .   Page 85
  248.                D. Functions . . . . . . . . . . . . . . . . . . .   Page 88
  249.                     ABS(Num_Value)  . . . . . . . . . . . . . . .   Page 88
  250.                     ASC(Char_Value) . . . . . . . . . . . . . . .   Page 88
  251.                     AT(Char_Value1, Char_Value2)  . . . . . . . .   Page 88
  252.                     CDOW(Date_Value)  . . . . . . . . . . . . . .   Page 88
  253.                     CHR(Num_Value)  . . . . . . . . . . . . . . .   Page 88
  254.                     CMONTH(Date_Value)  . . . . . . . . . . . . .   Page 89
  255.                     CTOD(Char_Value)  . . . . . . . . . . . . . .   Page 89
  256.                     DATE()  . . . . . . . . . . . . . . . . . . .   Page 89
  257.                     DAY(Date_Value) . . . . . . . . . . . . . . .   Page 89
  258.                     DBF() . . . . . . . . . . . . . . . . . . . .   Page 89
  259.                     DEL() . . . . . . . . . . . . . . . . . . . .   Page 89
  260.                     DELETED() . . . . . . . . . . . . . . . . . .   Page 89
  261.                     DOW(Date_Value) . . . . . . . . . . . . . . .   Page 89
  262.                     DTOC(Date_Value) and DTOS(Date_Value) . . . .   Page 89
  263.                     EXP(Num_Value)  . . . . . . . . . . . . . . .   Page 90
  264.                     FIELD(Num_Value)  . . . . . . . . . . . . . .   Page 90
  265.                     IIF(Condition, Expression1, Expression2)  . .   Page 90
  266.                     INT(Num_Value)  . . . . . . . . . . . . . . .   Page 90
  267.                     ISALPHA(Char_Value) . . . . . . . . . . . . .   Page 90
  268.                     ISLOWER(Char_Value) . . . . . . . . . . . . .   Page 90
  269.                     ISUPPER(Char_Value) . . . . . . . . . . . . .   Page 90
  270.                     LEFT(Char_Value, Number of characters from left)                                                                      Page 90
  271.                     LEN(Char_Value) . . . . . . . . . . . . . . .   Page 91
  272.                     LOG(Num_Value)  . . . . . . . . . . . . . . .   Page 91
  273.                     LOWER(Char_Value) . . . . . . . . . . . . . .   Page 91
  274.                     LTRIM(Char_Value) . . . . . . . . . . . . . .   Page 91
  275.                     MAX(Num_Value1, Num_Value2) . . . . . . . . .   Page 91
  276.                     MIN(Num_Value1, Num_Value2) . . . . . . . . .   Page 91
  277.                     MOD(Num_Value1, Num_Value2) . . . . . . . . .   Page 91
  278.                     MONTH(Date_Value) . . . . . . . . . . . . . .   Page 91
  279.                     RECCOUNT()  . . . . . . . . . . . . . . . . .   Page 91
  280.                     RECNO() . . . . . . . . . . . . . . . . . . .   Page 91
  281.                     RIGHT(Char_Value,   Number   of   characters  from
  282.                          right) . . . . . . . . . . . . . . . . .   Page 92
  283.                     ROUND(Num_Value1, Num_Value2) . . . . . . . .   Page 92
  284.                     RTRIM(Char_Value) . . . . . . . . . . . . . .   Page 92
  285.                     SPACE(Num_Value)  . . . . . . . . . . . . . .   Page 92
  286.                     SQRT(Num_Value) . . . . . . . . . . . . . . .   Page 92
  287.                     STR(Num_Value, Length, Decimals)  . . . . . .   Page 92
  288.                     SUBSTR(Char_Value,  Starting  Position,  Number of
  289.  
  290.           
  291.                                                                      Page V
  292.  
  293.                          Characters)  . . . . . . . . . . . . . .   Page 92
  294.                     TIME()  . . . . . . . . . . . . . . . . . . .   Page 92
  295.                     UPPER(Char_Value) . . . . . . . . . . . . . .   Page 93
  296.                     VAL(Char_Value) . . . . . . . . . . . . . . .   Page 93
  297.                     YEAR(Date_Value)  . . . . . . . . . . . . . .   Page 93
  298.  
  299.           Appendix C:  Warning and Error Messages . . . . . . . .   Page 94
  300.                A. Warning Messages  . . . . . . . . . . . . . . .   Page 94
  301.                B. Error Messages  . . . . . . . . . . . . . . . .   Page 95
  302.  
  303.           Appendix D:  PRO-dVelBase Files . . . . . . . . . . .    Page 102
  304.                A. Program Files . . . . . . . . . . . . . . . .    Page 102
  305.                B. Created Files . . . . . . . . . . . . . . . .    Page 102
  306.  
  307.           Appendix E:  Trademark Notices  . . . . . . . . . . .    Page 104
  308.  
  309.  
  310.  
  311.  
  312.  
  313.  
  314.  
  315.  
  316.  
  317.  
  318.  
  319.  
  320.  
  321.  
  322.  
  323.  
  324.  
  325.  
  326.  
  327.  
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.  
  335.  
  336.  
  337.  
  338.  
  339.  
  340.  
  341.  
  342.  
  343.  
  344.  
  345.  
  346.  
  347.  
  348.           
  349.                                                                      Page 1
  350.  
  351.  
  352.                                Chapter 1:  Introduction
  353.                                ========================
  354.  
  355.           PRO-dVelBase Lite (from now on abbreviated to PRO-dVelBase) is a
  356.           relational database management system.  It was developed around
  357.           the premise that database management is not the sole domain of
  358.           the programmer.
  359.  
  360.           With PRO-dVelBase, all the features and functions of a powerful
  361.           database management system are accessed through menus and require
  362.           no programming at all.  Therefore, nonprogrammers may create very
  363.           sophisticated database applications without using a programming
  364.           language.
  365.  
  366.           PRO-dVelBase revolves around a series of "objects" such as form,
  367.           query, report, mail, label, append and post.  These "objects" may
  368.           be created, modified, selected, executed and deleted.  Through
  369.           manipulation of these objects, the various database functions may
  370.           be easily achieved without using a complex programming language.
  371.  
  372.           A. Registration
  373.           ===============
  374.  
  375.           PRO-dVelBase Lite 1.0 is distributed as "shareware".  This allows
  376.           you to "try before you buy".  If you find this program helpful,
  377.           we ask you to send in a registration fee.  With this registration
  378.           fee, you will obtain a registered copy of the software, a printed
  379.           200 page reference manual, a 100 page tutorial, a coupon towards
  380.           the purchase of PRO-dVelBase 2.0 and free telephone support for
  381.           90 days.  Please print the accompanying file, README.TXT, for an
  382.           order form.
  383.  
  384.           B. Technical Support
  385.           ====================
  386.  
  387.           Ninety day free telephone support is available for all registered
  388.           users of PRO-dVelBase.
  389.  
  390.           C. How to Use This Documentation
  391.           ================================
  392.  
  393.           This reference guide will describe the objects and commands used
  394.           in PRO-dVelBase.  Each of the main menu items will be described
  395.           in a separate chapter.  Submenu commands will be described in
  396.           logical order rather than in order of appearance on the menu. 
  397.           The reference guide is only a synopsis of the reference manual. 
  398.           Upon registration of the software, a complete, printed reference
  399.           manual and tutorial will be sent.
  400.  
  401.           The convention used in this reference guide to indicate the path
  402.           used to reach a certain command from the main menu is with a
  403.           forward slash (/).  For example, Form/Modify means first
  404.           selecting Form from the main menu and then selecting Modify from
  405.  
  406.           
  407.                                                                      Page 2
  408.  
  409.           the first pull-down menu.
  410.  
  411.           D. Technical Specifications of PRO-dVelBase
  412.           ===========================================
  413.  
  414.           The following is a detailed list of PRO-dVelBase features.  It
  415.           serves as a thumbnail sketch of the capabilities of PRO-dVelBase. 
  416.           Please note that these are the specifications of PRO-dVelBase
  417.           Lite.  PRO-dVelBase 2.0 has many more features and allows for
  418.           larger databases.
  419.  
  420.           Database Specifications
  421.           -----------------------
  422.                * Maximum of 127 fields per record
  423.                * Maximum of 65,535 records per database file
  424.                * Database (.DBF and .DBT) and index (.NDX) files are dBASE  
  425.                  compatible
  426.                * Field types:
  427.                  - Character (maximum of 128 characters)
  428.                  - Numeric (maximum of 19 digits)
  429.                  - Date
  430.                  - Time
  431.                  - Logical (True or False)
  432.                  - Single Key (user defined single key)
  433.                  - Memo (maximum of 10,000 characters)
  434.  
  435.           Forms
  436.           -----
  437.                * Forms are designed by placing text and fields directly on  
  438.                  the screen
  439.                * Underlying database file automatically created with form
  440.                * Forms span up to 5 screens
  441.                * Place up to 127 fields per form
  442.                * Draw boxes, lines and graphics characters to improve the   
  443.                  look of the form
  444.                * Forms may relate up to 5 database files, each with a       
  445.                  maximum of 7 indexes
  446.                * Maximum of one 1-to-20 link in a one-to-many relationship  
  447.                  (i.e. one record in a parent database file linked with 20  
  448.                  records in child database file)
  449.                * Displays a one-to-many relationship in a "scroll-window",  
  450.                  that allows these records to be scrolled within a window   
  451.                  on the screen for ease of viewing
  452.                * Able to print a report after each new record as in an      
  453.                  invoicing system
  454.                * Able to print a report, label or mail of the currently     
  455.                  viewed record directly from the form
  456.                * Able to zoom into underlying database file and display it  
  457.                  in table view (in sequential or indexed order)
  458.                * Able to transfer records from table view into form view,   
  459.                  thus acting as a "look-up table"
  460.  
  461.  
  462.  
  463.  
  464.           
  465.                                                                      Page 3
  466.  
  467.  
  468.           Fields
  469.           ------
  470.                * Fields defined by answering a series of questions
  471.                * Display length of long fields may be changed
  472.                * Fields may be required (null data disallowed), fully       
  473.                  filled or forced upper case
  474.                * Able to perform range check on numeric fields
  475.                * Automatic word wrap for memo fields with a maximum of one  
  476.                  memo field per form
  477.                * Multiple date and time formats supported
  478.                * Single key fields allow users to specify allowed keys      
  479.                  (i.e. "MF" for sex field)
  480.                * Allows up to 127 calculated (virtual) fields per form
  481.                * Allows for:
  482.                  - derived fields (fields based upon a formula)
  483.                  - copied fields (fields copied from previous record)
  484.                  - default fields (fields that automatically display a      
  485.                    certain value)
  486.                  - sequential fields (fields that increment sequentially    
  487.                    based upon an indexed field)
  488.                * Create pictures that act as templates and data masks       
  489.                  (i.e. (NNN) NNN-NNNN for a telephone field)
  490.  
  491.           Tables
  492.           ------
  493.                * Able to edit records in table
  494.                * Able to transfer records from table to form
  495.                * Change order of fields to view
  496.                * Able to view records in sequential or indexed order
  497.  
  498.           Queries
  499.           -------
  500.                * Uses "Query-by-Example" to create queries
  501.                * Multiple .AND. and .OR. conditions supported
  502.                * Ascending sorts on up to 10 fields either case sensitive   
  503.                  or case insensitive
  504.                * Queries act as filters to allow only the selected records  
  505.                  to be processed by Report, Mail, Label, Append or Post
  506.  
  507.           Reports
  508.           -------
  509.                * Created by placing fields and text on screen
  510.                * Uses "band" method to place fields and text in desired     
  511.                  location on report
  512.                * Allows up to 5 levels of grouping
  513.                * Field formatting accomplished by answering a series of     
  514.                  questions
  515.                * Allows calculated, summary (sum, average, high, low,       
  516.                  count) and system (record count, record number, page,      
  517.                  date, time) fields
  518.  
  519.  
  520.  
  521.  
  522.           
  523.                                                                      Page 4
  524.  
  525.  
  526.           Labels
  527.           ------
  528.                * Created by placing fields and text onto a label
  529.                * Supports any size label
  530.                * Multiple copies allowed
  531.                * Calculated, summary and system fields supported
  532.  
  533.           Mail
  534.           ----
  535.                * Merges letter with database records
  536.                * Use built in editor or your favorite word processor
  537.  
  538.           Functions and expressions
  539.           -------------------------
  540.                * Supports most dBASE III functions directly and expression  
  541.                  syntax is dBASE compatible
  542.  
  543.           Searches
  544.           --------
  545.                * Able to search through form or table
  546.                * Allows global operations such as delete, undelete and      
  547.                  replace
  548.  
  549.           Utilities
  550.           ---------
  551.                * Allows appending of records to a second database file
  552.                * One database file may post to another one
  553.                * Allows for zapping (removing all records) and packing      
  554.                  (removing marked records) of a database file
  555.                * Structure of a database file may be cloned to second       
  556.                  database file
  557.  
  558.           E. System Requirements
  559.           ======================
  560.  
  561.           * IBM PC/XT/AT, PS/2 or 100% compatible computer
  562.           * PC/MS DOS 3.0 or greater
  563.           * 80x87 math coprocessor supported
  564.           * Hard drive with at least 2 megabytes free disk space
  565.           * 640K RAM
  566.           * Supports monochrome, Hercules, CGA, EGA or VGA adapters
  567.           * Printer recommended
  568.  
  569.           F. Compatibility
  570.           ================
  571.  
  572.           PRO-dVelBase is completely data file compatible with any program
  573.           that uses .DBF file format.  Examples of such programs include:
  574.           dBASE III, dBASE IV, Clipper, FoxBase and dBXL.  This means that
  575.           any data files created by any of these programs may be used by
  576.           PRO-dVelBase directly without conversion and vice versa.  The
  577.           index files (.NDX extension) are also dBASE III compatible
  578.           although the names of the files are determined by the program
  579.  
  580.           
  581.                                                                      Page 5
  582.  
  583.           rather than the user.
  584.  
  585.           G. Installation and Running PRO-dVelBase
  586.           ========================================
  587.  
  588.           PRO-dVelBase Lite is distributed in .ZIP file format and requires
  589.           a copy of PKUNZIP.EXE to uncompress it.  A program directory
  590.           should be created first.  This may be done with the command,
  591.           "MD C:\PRO" (without the quotes), from the DOS prompt.  The
  592.           program can then be uncompressed using the command,
  593.           "PKUNZIP C:\PRO\PROLIT10 C:\PRO" (if PROLIT10.ZIP is on C:\PRO
  594.           directory).  The sample application is entitled, "WIDGETS.ZIP". 
  595.           Another subdirectory should be created to store the sample
  596.           widgets application.  This is created with the command,
  597.           "MD C:\PRO\WIDGETS", from the DOS prompt.  The widgets
  598.           application can then be uncompressed with the command,
  599.           "PKUNZIP C:\PRO\WIDGETS.ZIP C:\PRO\WIDGETS".
  600.  
  601.           The CONFIG.SYS file should be changed to include the following
  602.           lines.
  603.  
  604.           FILES=60
  605.           BUFFERS=20
  606.  
  607.           Be sure you are on the subdirectory in which PRO-dVelBase resides
  608.           by typing CD\PRO followed by ENTER.
  609.  
  610.           It is recommended that different applications be stored in
  611.           separate subdirectories beneath the one in which PRO-dVelBase
  612.           resides.  A subdirectory may be created with the command:
  613.           MD <DIRECTORY NAME>
  614.  
  615.           The program may now be run directly by just typing PRO followed
  616.           by ENTER from the DOS prompt.  At the main menu, the sample
  617.           application can be viewed by using the Options/Change Dir command
  618.           to change the data directory to "WIDGETS".  A form can then be
  619.           selected and executed.
  620.  
  621.           PRO-dVelBase automatically senses what type of video adapter card
  622.           the computer has and adjusts itself accordingly to display in
  623.           either monochrome or color.  The only problem that may arise if
  624.           the computer has a CGA card with a composite monochrome monitor. 
  625.           PRO-dVelBase will then attempt to display the screens in color. 
  626.           The screen resolution on such a monitor may be very poor.  The
  627.           way around this problem is to force PRO-dVelBase to display in
  628.           monochrome.  To do this, use the DOS MODE command.  From the DOS
  629.           prompt, type "MODE BW80" before typing PRO.  PRO-dVelBase will
  630.           now be displaying its screens in monochrome.
  631.  
  632.           If the keyboard locks after starting the program, try re-starting
  633.           the program by typing, "PRO -k".  PRO-dVelBase normally attempts
  634.           to accelerate the typematic rate on AT style keyboards.  On some
  635.           keyboards, this may not work causing the keyboard to freeze. 
  636.           Using the "-k" switch turns off the keyboard speed up.
  637.  
  638.           
  639.                                                                      Page 6
  640.  
  641.           The printer also has to be initially setup.  Although not
  642.           absolutely necessary, having a printer definition file allows for
  643.           more precise control over your printer.  At the main menu, press
  644.           O followed by P followed by C (Options/Printer Setup/Create). 
  645.           You will then arrive at the Printer Definition Screen.  You may
  646.           now fill in the control codes that control special functions for
  647.           your particular printer (see your printer reference manual). 
  648.           Pressing F9 will list some common brands of printers and you may
  649.           just select one and the codes will automatically be filled in. 
  650.           If you do not see your particular printer, many dot-matrix
  651.           printers are Epson compatible and selecting that one is a safe
  652.           bet.  If you have a laser printer, many are also H.P.  LaserJet
  653.           compatible and selecting the H.P.  LaserJet may work.  When
  654.           finished press F10 followed by Y to save the printer definition. 
  655.           The specifics about printer setup are found in Chapter 8 under
  656.           Options: Printer Setup.
  657.  
  658.           H. Help
  659.           =======
  660.  
  661.           PRO-dVelbase uses a "hypertext" help system that makes it very
  662.           easy to learn all the features that PRO-dVelBase has to offer.
  663.  
  664.           The help system is accessed by pressing F1.  The initial help
  665.           screen is context sensitive i.e.  it depends upon which part of
  666.           the program it is accessed from.  Key words are highlighted and
  667.           further help on these words may be accessed by moving the cursor
  668.           over the highlighted word and pressing ENTER.  Previous help
  669.           screens are accessed by pressing PAGEUP.  The entire help system
  670.           may be navigated through the "Main Help Menu" option.  Selecting
  671.           Next views the next help screen in the section.
  672.  
  673.           I. Basic Principles
  674.           ===================
  675.  
  676.           There are a few basic principles that apply to PRO-dVelBase. 
  677.           Understanding these principles is essential.
  678.  
  679.           The main objects of PRO-dVelBase (Form, Query, Report, Mail and
  680.           Label) may be accessed through the main menu.  Secondary objects
  681.           (Append and Post) may be accessed through the Utilities submenu. 
  682.           Each of these objects may be selected, executed, created,
  683.           modified, unselected, deleted, added to catalog or removed from
  684.           catalog.
  685.  
  686.           You must first create the object and select it before you may
  687.           execute it.
  688.  
  689.           The process of developing objects requires that you use the
  690.           submenu commands Create, Select and then Execute.  However, you
  691.           only need to create your objects once.  Thereafter, you must
  692.           always select it first before you will be allowed to execute it. 
  693.           All future changes to the objects may be made through the Modify
  694.           submenu command.
  695.  
  696.           
  697.                                                                      Page 7
  698.  
  699.           To clarify the above, you only create your form once. 
  700.           Thereafter, whenever you want to use your form, you must select
  701.           it first before executing it.
  702.  
  703.           Similarly, you only create your report once but whenever you need
  704.           to use it you must select it first before you may execute it.
  705.  
  706.           Form is the main object that all other objects are related to or
  707.           built upon.  The creation of subsequent objects is dependent upon
  708.           which form is selected.
  709.  
  710.  
  711.  
  712.  
  713.  
  714.  
  715.  
  716.  
  717.  
  718.  
  719.  
  720.  
  721.  
  722.  
  723.  
  724.  
  725.  
  726.  
  727.  
  728.  
  729.  
  730.  
  731.  
  732.  
  733.  
  734.  
  735.  
  736.  
  737.  
  738.  
  739.  
  740.  
  741.  
  742.  
  743.  
  744.  
  745.  
  746.  
  747.  
  748.  
  749.  
  750.  
  751.  
  752.  
  753.  
  754.           
  755.                                                                      Page 8
  756.  
  757.  
  758.                                    Chapter 2:  Form
  759.                                    ================
  760.  
  761.           The form constitutes the basic method of data entry and relating
  762.           database files when using PRO-dVelBase.  Creating a form
  763.           automatically creates the underlying database (.DBF extension)
  764.           file.
  765.  
  766.           There are six submenu commands under the form menu.  These
  767.           include:  Select, Execute, Create, Modify, Unselect and Delete.
  768.  
  769.           A. Form/Create
  770.           ==============
  771.  
  772.           This submenu command is used to create forms.  A form consists of
  773.           one or more database files.  Each form is associated with a
  774.           primary database file.  A file that is related to the primary
  775.           database file is called a secondary database file.  One that is
  776.           related to a secondary database file is called a tertiary
  777.           database file and so on.  The secondary, tertiary, etc. database
  778.           files are also called collectively, foreign database files
  779.           because they are foreign to the primary database file.  Another
  780.           way of expressing this is using the terms parent and child
  781.           databases or parent and child records.
  782.  
  783.           In forms, you may:
  784.            1.  Define and place fields.
  785.            2.  Set relationships between various database files.
  786.  
  787.           To create your form:
  788.            1.  Design your entire database on paper.  Write down all the
  789.                field names and the specifications for each field.
  790.            2.  Identify key fields.  If you are creating several databases
  791.                that will be related together, you need to identify the key
  792.                fields that will be used to set the relationships.  Key
  793.                fields are fields that have a unique value to them that
  794.                distinguishes them from every other record in the database
  795.                file.  The value of a key field is common between various
  796.                database files.  For example, the social security number is
  797.                a unique number that identifies a person and can be used as
  798.                a key field.  All key fields need to be indexed.
  799.  
  800.           Taking the extra time to design your database on paper will save
  801.           you time when designing it at your computer.  You should have a
  802.           clear picture of what you want to design before sitting down at
  803.           your computer.  It is much easier and less time consuming to make
  804.           corrections on paper than to make them at your computer.
  805.  
  806.           Once you have designed your database on paper, then proceed to
  807.           use PRO-dVelBase.
  808.            1.  Select Form/Create.
  809.            2.  Give the form a name.  This name is up to 8 characters in
  810.                length and must follow dBASE conventions in naming.  If you
  811.  
  812.           
  813.                                                                      Page 9
  814.  
  815.                are not familiar with dBASE conventions in naming, see
  816.                Appendix A:  dBASE Naming Conventions.
  817.  
  818.                If you select a name that already exists, you will get an
  819.                error message and you will be asked to enter a new name. 
  820.                Make sure the new name you choose is descriptive of the form
  821.                you are creating.
  822.  
  823.            3.  The next screen is the Form Definitions Screen and you will
  824.                be asked, "Do you want to print a report after each new
  825.                record? (Y/N)".  Answer YES or NO depending upon whether you
  826.                want a report.  If you answer YES, PRO-dVelBase will
  827.                generate a single transaction report after each new record
  828.                added to the end of the database.  The format of the report
  829.                is dependent upon the currently selected report.  If no
  830.                report is in the work area, then the report will not be
  831.                printed.  This feature may be used in an invoicing system
  832.                where the customer would receive a statement after the
  833.                transaction.
  834.  
  835.            4.  This takes you to the next screen, which is the form editor. 
  836.                Towards the bottom of the screen is the status line.  The
  837.                status line consists of the following information.
  838.                 a.  Date
  839.                 b.  Time
  840.                 c.  Screen number
  841.                 d.  Row and column number of the cursor
  842.                 e.  Status of the INSERT key
  843.                 f.  Status of the Caps Lock key
  844.                 g.  Status of the Scroll Lock key
  845.                 h.  Status of the Num Lock key
  846.  
  847.           The form editor is similar to many basic text editors.  It allows
  848.           for full screen editing.  Text and fields may be placed directly
  849.           on the screen at any location on up to 5 different screens. 
  850.           Moving between various screens occurs by the PAGEUP and PAGEDOWN
  851.           keys.  The INSERT key allows toggling between the insert mode and
  852.           overwrite mode.  A blocking function is also present and the
  853.           blocked area may be moved or copied to another area of the screen
  854.           or to a different screen.  Lines and IBM graphics characters
  855.           (ASCII values greater than 127) may also be placed on the forms.
  856.  
  857.  
  858.  
  859.  
  860.  
  861.  
  862.  
  863.  
  864.  
  865.  
  866.  
  867.  
  868.  
  869.  
  870.           
  871.                                                                     Page 10
  872.  
  873.  
  874.           The following table shows the active keys on the form editor.
  875.  
  876.           =================================================================
  877.           Active Key               Action
  878.           -----------------------------------------------------------------
  879.           ESC                      takes you to the previous screen and
  880.                                    allows you to exit this section of the
  881.                                    program, without saving.
  882.           ARROW CURSOR KEYS        moves the cursor in the direction of the
  883.                                    arrows.
  884.           PAGEDOWN                 moves to the next screen.
  885.           PAGEUP                   moves to the previous screen.
  886.           HOME                     moves the cursor to the extreme left.
  887.           END                      moves the cursor to the last text or
  888.                                    field on the screen.
  889.           INSERT                   toggles between overwrite and insert
  890.                                    mode.
  891.           DELETE                   deletes the text or field on the cursor.
  892.                                    Also deletes the relationships between
  893.                                    files if cursor is in a key field.
  894.           BACKSPACE                deletes the previous text character.
  895.           ENTER                    inserts a blank line when in insert mode
  896.                                    only if the bottom line of the form is
  897.                                    empty.
  898.           F1                       context sensitive help.
  899.           F3                       starts and ends blocking of an area.
  900.           F5                       copies blocked area.
  901.           F6                       moves the blocked area.
  902.           F7                       places and defines a database or
  903.                                    calculated field.
  904.           ALT-F7                   sets a relationship to another database
  905.                                    file.
  906.           F10                      completes and saves the form.
  907.           ALT-B                    displays and activates box drawing
  908.                                    characters.
  909.           ALT-C                    displays and places IBM extended
  910.                                    graphics characters.
  911.           ALT-S                    defines a scroll window for a
  912.                                    one-to-many relationship.
  913.           CTRL-C                   centers the text and fields on the
  914.                                    current line.
  915.           CTRL-Y                   clears the text from a line.
  916.           =================================================================
  917.  
  918.           Designing a form consists of placing text that describes a field
  919.           and then placing and defining the actual field itself.
  920.  
  921.           The form editor allows you to place text and fields on a maximum
  922.           of 5 different screens.  As a general rule, unless you have many
  923.           fields, only one screen should be used.  The reason for this is
  924.           that after you have completed the designing of your form, you
  925.           will be able to enter data more efficiently with fewer screens.
  926.  
  927.  
  928.           
  929.                                                                     Page 11
  930.  
  931.           If multiple screens are necessary, try to place logically related
  932.           fields together on the same screen.  For example, in an invoicing
  933.           system, place customer information on screen one and sales on
  934.           screen two.
  935.  
  936.           Start by placing your text on the screen.  Lay out your text in
  937.           the same way you would want it to appear for data entry purposes.
  938.  
  939.           When designing the form, the text should be placed on the screen
  940.           first.  This will give a basic layout as to how the fields should
  941.           be placed.
  942.  
  943.           You may want to start by placing a title for the form.  Later,
  944.           you may want to place a box around the title.  After placing the
  945.           title, you may place the rest of your text on the screen.
  946.  
  947.            Note:    You will need to wait until you have placed your fields
  948.                     before attempting to save your work.  If you attempt to
  949.                     save your work after placing the text only, you will
  950.                     generate an error message and you will not be allowed
  951.                     to save your work until you have placed at least 1
  952.                     field on your screen.
  953.  
  954.           It is recommended fields that are similar to one another be
  955.           placed together.  For example, it is wise to place a surname
  956.           field next to a first name field.
  957.  
  958.           During data entry, the cursor will jump from fields in the
  959.           direction of left to right, then top to bottom.  This is similar
  960.           to writing on a piece of paper.
  961.  
  962.           After the text has been placed on the screen, you will need to
  963.           place the fields somewhere close to the appropriate text labels. 
  964.           When placing a field, it is important to make sure that there is
  965.           enough space on the screen to accommodate the entire display
  966.           length of the field.  If there is insufficient space, an error
  967.           message will be generated.
  968.  
  969.           Placing fields is done as follows:
  970.            1.  Move the cursor over to where you want to place the field. 
  971.                This could be at a location adjacent, beneath or on top of
  972.                the text that you have already placed.
  973.            2.  Press F7.  A window opens giving you two options to choose
  974.                from:  Database or Calculated fields.
  975.            3.  Database fields are real fields that exist on database
  976.                files.  Calculated fields are virtual fields that exist in
  977.                the memory of the computer only and are based on a
  978.                calculation formula.
  979.            4.  Select Database.  You have now entered the field definition
  980.                screen.
  981.  
  982.  
  983.  
  984.  
  985.  
  986.           
  987.                                                                     Page 12
  988.  
  989.  
  990.           Database Fields
  991.           ---------------
  992.  
  993.           There are 2 sets of field definitions for database fields:  fixed
  994.           and changeable.  Fixed field definitions may only be modified
  995.           from the form in which the database file was created.  Changeable
  996.           field definitions may be altered from any form that links to that
  997.           field.  This means that if a given field has been linked to
  998.           multiple forms, the changeable field definitions for that field
  999.           may be different for each form.  The fixed field definitions,
  1000.           however, will be exactly the same for each of the forms.
  1001.  
  1002.           The process of making field definitions consists of answering a
  1003.           series of questions.  Each subsequent question that is asked will
  1004.           be determined by how you answered the previous question.  The
  1005.           built in logic of PRO-dVelBase determines what question will be
  1006.           asked next because some questions may be redundant or irrelevant
  1007.           depending on how the previous questions were answered.
  1008.  
  1009.           When defining your fields, the UP key will take you to the
  1010.           previous question and pressing ESC will abort the process of
  1011.           defining the field.
  1012.  
  1013.                Form: Fixed Field Definitions
  1014.                -----------------------------
  1015.  
  1016.                Fieldname:
  1017.                     A field name may be up to 10 characters in length and
  1018.                     may consist of letters of the alphabet, numbers, or the
  1019.                     underscore (_).  A number cannot be the first character
  1020.                     of the field name.  This follows standard dBASE
  1021.                     conventions.  (See Appendix A: dBASE Naming
  1022.                     Conventions).  Try to choose a field name that is
  1023.                     descriptive of the field.
  1024.  
  1025.                 Note:    Field names may not be changed once they are
  1026.                          assigned.  The reason is that there may be
  1027.                          calculations and formulas that are referenced to
  1028.                          this field name and it would be very difficult to
  1029.                          update all the references in other files.  The
  1030.                          only way a field name may be changed is to delete
  1031.                          the field and redefine it using another field
  1032.                          name.  This general rule applies to all objects
  1033.                          created by PRO-dVelBase.
  1034.  
  1035.                Field type? (C)har (N)umeric (D)ate (T)ime (L)ogical
  1036.                (S)ingle key (M)emo
  1037.                     PRO-dVelBase supports the five dBASE III field types: 
  1038.                     character, numeric, date, logical and memo.  It also
  1039.                     has two other field types:  time and single key.
  1040.  
  1041.                     ==> The default field type is Character.
  1042.  
  1043.  
  1044.           
  1045.                                                                     Page 13
  1046.  
  1047.                     The following table outlines the field types supported
  1048.                     by PRO-dVelBase.
  1049.           =================================================================
  1050.           Field Type          Field Description
  1051.           -----------------------------------------------------------------
  1052.           Char                Is a basic text field and consists of
  1053.                               alphanumerics or special characters.  Maximum
  1054.                               of 128 characters.
  1055.           Numeric             Consists of positive or negative whole or
  1056.                               decimal numbers.  Generally used whenever a
  1057.                               calculation has to be performed on that
  1058.                               field. Maximum of 19 characters, including a
  1059.                               negative sign.  May have up to 14 decimal
  1060.                               places.
  1061.           Date                Consists of dates only and has a field length
  1062.                               of 8 characters.  It is stored on disk in the
  1063.                               form of CCYYMMDD (where CC=century, YY=year,
  1064.                               MM=month, DD=day).  The display format will
  1065.                               be different depending on how it is defined. 
  1066.           Time                Consists of time only and has a field length
  1067.                               of 6 characters.  It is stored on disk in the
  1068.                               form of HHMMSS (where HH=24 military hours,
  1069.                               MM=minutes, SS=seconds).
  1070.           Logical             Is a single character field that can have
  1071.                               only 1 of 2 values, either "T" (for TRUE) or
  1072.                               "F" (for FALSE).  The field may contain the
  1073.                               following constants:  T, Y, F, N.
  1074.           Single key          Is a field that holds a single character. 
  1075.                               Allowed keys are set at the time of field
  1076.                               definition.  This field type is used when
  1077.                               there are a number of choices to be made. 
  1078.           Memo                Is a free text field in which anything may be
  1079.                               placed in it.  In other words, it is a field
  1080.                               for your comments. Only one memo field may be
  1081.                               defined per form.  Maximum length of 10,000
  1082.                               characters.
  1083.           =================================================================
  1084.  
  1085.                     The following table gives examples of some field types.
  1086.           =================================================================
  1087.           Field Type          Field Name          Value
  1088.           -----------------------------------------------------------------
  1089.           Char                SURNAME             Smith
  1090.                               ADDRESS             123 - Baker St.
  1091.                               CITY                Washington D.C.
  1092.           Numeric             PRICE               20.50
  1093.                               QUANTITY            54
  1094.           Single key          SEX                 "M" - male
  1095.                                                   "F" - female
  1096.                               COUNTRY             "U" - United States
  1097.                                                   "C" - Canada
  1098.                                                   "E" - England
  1099.           =================================================================
  1100.  
  1101.  
  1102.           
  1103.                                                                     Page 14
  1104.  
  1105.                Is this field required? (Y/N)
  1106.                     This question is only asked for character, date, time
  1107.                     and single key fields.  If you answer YES to this
  1108.                     question, you will force the user to enter data into
  1109.                     this field when he is doing data entry.  In other
  1110.                     words, you may not just leave this field blank.  If you
  1111.                     try to save a record with a required field blank, you
  1112.                     will get a warning message that a required field was
  1113.                     left blank.  You may still save the record or you may
  1114.                     choose to fill in the required field.
  1115.  
  1116.                     ==> The default is NO.
  1117.  
  1118.                What is the length of this field?
  1119.                     When determining the length of the field you should
  1120.                     determine how long the longest entry for that field
  1121.                     will be.  Make sure there will be enough room for this. 
  1122.                     You would not enter a length of 10 in the surname field
  1123.                     if you could possibly have a surname that is 20 in
  1124.                     length.  Do not allocate lengths that are much longer
  1125.                     than what you need otherwise, you will be wasting disk
  1126.                     space.  Field lengths are automatically assigned to the
  1127.                     field types below, therefore this question would not be
  1128.                     asked for these.  The length that is assigned is as
  1129.                     follows:
  1130.                      1. date: 8
  1131.                      2. time: 6
  1132.                      3. logical and single key: 1
  1133.  
  1134.                     Memo fields behave differently from other fields.  Memo
  1135.                     fields only occupy 10 bytes on the .DBF file.  These
  1136.                     bytes contain a pointer that indicates where the actual
  1137.                     field is located in the corresponding .DBT file.  The
  1138.                     amount of space the data occupies in the .DBT is not
  1139.                     fixed but variable.  Longer strings will take more
  1140.                     space.  If no data is present, no space is used in the
  1141.                     .DBT file.  Memo fields are therefore very useful for
  1142.                     fields that have free text since they do not waste
  1143.                     space if empty.
  1144.  
  1145.                How many decimal places are there?
  1146.                     This question is only asked for numeric fields.  They
  1147.                     may have a maximum of 14 decimal places.
  1148.  
  1149.                What is the display width?  What is the display height?
  1150.                     These two questions are asked for memo fields.  Both
  1151.                     the height and the width of the window may be defined
  1152.                     at this point.  The height of the window must be at
  1153.                     least 2 and the width cannot be greater than 80.
  1154.  
  1155.                Is this field to be fully filled? (Y/N)
  1156.                     A YES answer will mean that the number of characters
  1157.                     entered must always be equal to the maximum length
  1158.                     assigned to this field.  This question is only asked
  1159.  
  1160.           
  1161.                                                                     Page 15
  1162.  
  1163.                     for character fields.
  1164.  
  1165.                     ==> The default is NO.
  1166.  
  1167.                Which keys are allowed?
  1168.                     This question is asked for the single key field type. 
  1169.                     You may specify up to 20 keys that the user may choose
  1170.                     from.  Keys not included here will be rejected when
  1171.                     doing data entry.
  1172.  
  1173.                Index this field? (Y/N)
  1174.                     When indexing is performed, the value of this field
  1175.                     will be placed in a separate file in a sorted ascending
  1176.                     sequence.  This allows the PRO-dVelBase to access
  1177.                     information very quickly.
  1178.  
  1179.                     ==> The default is NO.
  1180.  
  1181.                     Indexing is necessary for:
  1182.                      1.  key fields linked to other database files.
  1183.                      2.  fast searches.
  1184.                      3.  prevention of duplicate entries.
  1185.  
  1186.                     For each database, a maximum of 7 indexes are allowed
  1187.                     therefore, you need to be selective about which fields
  1188.                     to index.  The key field must be indexed.  Fields that
  1189.                     you use to perform frequent searches should also be
  1190.                     indexed.
  1191.  
  1192.                     Every index is updated automatically whenever you do
  1193.                     data entry, making it a time consuming process.  This
  1194.                     means that the more indexes you create, the more time
  1195.                     it will take to update your database thus slowing down
  1196.                     data entry.
  1197.  
  1198.                     All field types except logical and memo may be indexed.
  1199.  
  1200.                Ignore case while indexing? (Y/N)
  1201.                     Answering YES will automatically convert all lower case
  1202.                     alpha to upper case alpha before it is indexed.  For
  1203.                     example, this will make "smith" equivalent to "SMITH". 
  1204.                     This is helpful if case insensitive index searches are
  1205.                     needed.
  1206.  
  1207.                     ==> The default is NO.
  1208.  
  1209.                Prevent duplicate entries? (Y/N)
  1210.                     Indexes may be used to prevent the user from entering a
  1211.                     value that is the same as one already entered.  After a
  1212.                     value is entered into a field, the index is searched
  1213.                     and if that value is already present, it is rejected.
  1214.  
  1215.                     ==> The default is NO.
  1216.  
  1217.  
  1218.           
  1219.                                                                     Page 16
  1220.  
  1221.                Are numbers allowed? (Y/N)
  1222.                     This question is only asked for the character field
  1223.                     type.  If you would like to prevent the user from
  1224.                     entering numbers in this field, answer NO.  A numeric
  1225.                     string may be created by answering YES to this question
  1226.                     and not allowing letters of the alphabet or special
  1227.                     characters.  The difference between a numeric string
  1228.                     and a numeric field is that a numeric string cannot be
  1229.                     directly used in a calculation.  For example, a phone
  1230.                     number field should be defined as a numeric string.
  1231.  
  1232.                     ==> The default is YES.
  1233.  
  1234.                Are letters of the alphabet allowed? (Y/N)
  1235.                     If you would like the user to enter letters of the
  1236.                     alphabet, answer YES.  This question is only asked for
  1237.                     character fields.
  1238.  
  1239.                     ==> The default is YES.
  1240.  
  1241.                Upper case only? (Y/N)
  1242.                     Answering YES will force all entries to be in upper
  1243.                     case regardless of whether the caps lock key is in use.
  1244.  
  1245.                     ==> The default is NO.
  1246.  
  1247.                Are special characters allowed? (Y/N)
  1248.                     The following are special character keys:  SPACE ! " #
  1249.                     $ % & ' ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ ` { | }
  1250.                     ~  This question is only asked for character fields.
  1251.  
  1252.                     ==> The default is YES.
  1253.  
  1254.                Do you want a range check? (Y/N)
  1255.                     Range checks may be performed on numeric fields.  A
  1256.                     lower and upper range may be specified and entries
  1257.                     outside this range will generate an error message.
  1258.  
  1259.                     ==> The default is NO.
  1260.  
  1261.                Display format for date? (A)-MM/DD/YY (B)-DD/MM/YY
  1262.                          C)-YY/MM/DD
  1263.                     Three different display formats are allowed for date
  1264.                     fields.  When the form is executed, a template will
  1265.                     appear in the date field display indicating which
  1266.                     format was selected.  For example, choosing display
  1267.                     format (A) will display the template, "mm/dd/yy".  The
  1268.                     purpose of this template is to guide the user on the
  1269.                     proper date format for data entry.
  1270.  
  1271.                     ==> The default is MM/DD/YY.
  1272.  
  1273.                Display format for time? (A)-12 hrs. (B)-24 hrs.
  1274.                     Two different display formats are available for time
  1275.  
  1276.           
  1277.                                                                     Page 17
  1278.  
  1279.                     fields.  The first is the 12 hour format (with a
  1280.                     template of "hh:mmp", where p represents A for am or P
  1281.                     for pm) and the second is the 24 hour format, or
  1282.                     military time (with a template of "hh:mm").
  1283.  
  1284.                     ==> The default is 12 hours.
  1285.  
  1286.                Display seconds? (Y/N)
  1287.                     This question is only asked for the time field type. 
  1288.                     It allows for seconds to be entered along with the
  1289.                     hours and minutes.  The template will also have ":ss"
  1290.                     to indicate that seconds have to be entered.
  1291.  
  1292.                     ==> The default is NO.
  1293.  
  1294.                Word wrap each line? (Y/N)
  1295.                     This question is only asked for memo fields and allows
  1296.                     for each line to be displayed properly without breaking
  1297.                     up words at the end of the line.
  1298.  
  1299.                     ==> The default is YES.
  1300.  
  1301.                Picture:
  1302.                     The purpose of a picture is for formatting the way the
  1303.                     data is to appear in the field display.  Pictures only
  1304.                     apply to character fields and the maximum total length
  1305.                     of a picture is 70 characters.
  1306.  
  1307.                     The picture acts as both a template and a mask.  As a
  1308.                     template, any special character placed in the picture
  1309.                     will be displayed that way in the field.  Note that
  1310.                     these special characters are for display purposes only
  1311.                     and are not saved.  
  1312.                     As a mask, pictures will only allow certain characters
  1313.                     at a given position.  The following table indicates how
  1314.                     PRO-dVelBase uses pictures as a mask.
  1315.  
  1316.           =================================================================
  1317.           Character                Effect
  1318.           -----------------------------------------------------------------
  1319.           a                        only alpha characters
  1320.           A                        only alpha characters forced to upper
  1321.                                    case
  1322.           b                        both alpha and numeric characters
  1323.           B                        both alpha and numeric characters, with
  1324.                                    alpha characters forced to upper case
  1325.           N or n                   only numeric characters
  1326.           x                        alpha, numeric or special characters
  1327.           X                        alpha, numeric or special characters,
  1328.                                    with alpha characters forced to upper
  1329.                                    case.
  1330.           =================================================================
  1331.  
  1332.  
  1333.  
  1334.           
  1335.                                                                     Page 18
  1336.  
  1337.  
  1338.                     Here are some examples of pictures.
  1339.  
  1340.           ================================================================
  1341.           Picture             UserKey Strokes               Result
  1342.           ----------------------------------------------------------------
  1343.           (NNN) NNN-NNNN      4034569163                    (403) 456-9163
  1344.           AA-NNNNN            xy4645k                       XY-4645 but
  1345.                                                             blocks the
  1346.                                                             final k
  1347.           =================================================================
  1348.  
  1349.                     The number of alphanumeric characters in the picture
  1350.                     must be equal to the length of the field.
  1351.  
  1352.                     e.g. For a phone number field having a field length of
  1353.                          7.
  1354.                     NNNNNNN is allowed
  1355.                     NNN-NNNN is allowed
  1356.                     NNN-NNN is not allowed
  1357.  
  1358.                     Remember that when using a picture as a mask, the
  1359.                     previous field definition rules take precedence over
  1360.                     the ones in the picture.  For example, if you have not
  1361.                     allowed numbers when you defined a field, placing an N
  1362.                     in the picture will not allow you to use numbers.
  1363.  
  1364.                Form: Changeable Field Definitions
  1365.                ----------------------------------
  1366.  
  1367.                Display status for field? (A)-both read & write (B)-read
  1368.                only (C)-hidden
  1369.                     The display status of a field refers to whether the
  1370.                     user is able to see and edit the field.  In a read and
  1371.                     write field, the user is able to see and edit the
  1372.                     field.  In a read only field, the user may see the
  1373.                     value of the field but is unable to change it.  The
  1374.                     cursor will jump over a read only field.  In a hidden
  1375.                     field, the user may neither see nor edit the field. 
  1376.                     Most fields are generally both read and write.
  1377.  
  1378.                     ==> The default is both read & write.
  1379.  
  1380.                What is the display width?
  1381.                     In character fields, the width of the field display may
  1382.                     be changed.  This defaults to the length of the field. 
  1383.                     However, it may be shortened if there is limited space
  1384.                     on the screen.  If the width of the display is less
  1385.                     than the length of the field, then on data entry, the
  1386.                     value will be scrolled horizontally within the display.
  1387.  
  1388.                     ==> The default is the field length.
  1389.  
  1390.  
  1391.  
  1392.           
  1393.                                                                     Page 19
  1394.  
  1395.  
  1396.                Field value is (A)User entered (B)Derived (C)opied (D)efault
  1397.                (E)Sequential?
  1398.                     This question affects how a value may be entered into a
  1399.                     field.  Most fields are user entered, meaning that it
  1400.                     is up to the user to enter data into the field.
  1401.  
  1402.                     A derived field is one that is calculated based on a
  1403.                     formula that relates it to other fields, functions or
  1404.                     values.  For derived fields, a formula must be entered. 
  1405.                     Please refer to the Appendix B:  Formulas and
  1406.                     Functions.  A derived field differs from a calculated
  1407.                     field in that a derived field is real while a
  1408.                     calculated field is virtual and exists only in the
  1409.                     memory of the computer.  Generally, a derived field
  1410.                     should be used if you want the value to be saved.  The
  1411.                     display status for derived fields should be set for
  1412.                     read only.  The reason for this is because even though
  1413.                     it is possible to edit a derived field, its value will
  1414.                     automatically revert back to the calculated result once
  1415.                     the cursor leaves the field.
  1416.  
  1417.                     A copied field is one whose value is copied from the
  1418.                     last record in the database file.  
  1419.  
  1420.                     A default field is one that defaults to a certain value
  1421.                     only if the field is empty.  It is also based upon a
  1422.                     formula and is very similar to a derived field.  The
  1423.                     only difference between it and a derived field is that
  1424.                     a default field is only evaluated when the cursor drops
  1425.                     into the field display.
  1426.  
  1427.                     If the field value is sequential, then its value is
  1428.                     taken from the greatest value of the index of the field
  1429.                     read from.  This value is then incremented.  This type
  1430.                     of field is particularly valuable in generating unique
  1431.                     values for key fields such as a customer number field. 
  1432.                     The field must be indexed.
  1433.  
  1434.                     ==> The default is User entered.
  1435.  
  1436.                Field value appears (A)utomatically (U)ser selected.
  1437.                     This question is only asked for copied, default and
  1438.                     sequential field values.  If you define the field value
  1439.                     to appear automatically, then once the cursor drops
  1440.                     into the field, that value will appear if the field is
  1441.                     initially blank.  If a value is present initially, no
  1442.                     changes are made unless F5 is pressed.  If you define
  1443.                     the field to be user selected then F5 must be pressed
  1444.                     before the value will appear.
  1445.  
  1446.                     ==> The default is (A)utomatically.
  1447.  
  1448.  
  1449.  
  1450.           
  1451.                                                                     Page 20
  1452.  
  1453.  
  1454.                (I)ncrease (D)ecrease (S)ame?
  1455.                     This question is asked for copied field values.  It
  1456.                     indicates how the field is to be copied from the last
  1457.                     record of the database file (i.e. whether the value is
  1458.                     to increase, decrease or be the same).  In a numeric
  1459.                     field, a value of 1 is either added or subtracted if
  1460.                     the field is increased or decreased.  In a character
  1461.                     field, the ASCII value of the rightmost character is
  1462.                     either increased or decreased.  If end characters such
  1463.                     as 0, 9, a, z, A or Z are reached then the value is
  1464.                     wrapped around and the second from the right character
  1465.                     is increased or decreased and so on.  In date fields,
  1466.                     the date is either increased or decreased by one day. 
  1467.                     This question is only applicable to numeric, character
  1468.                     and date fields.
  1469.  
  1470.                     ==> The default is (S)ame.
  1471.  
  1472.                     The following table shows some examples of various
  1473.                     operations.
  1474.  
  1475.           =================================================================
  1476.           Field Type     Initial Value       Operation      Result
  1477.           -----------------------------------------------------------------
  1478.           Numeric             14             Increase       15
  1479.           Numeric             62.95          Decrease       61.95
  1480.           Character           xyz            Increase       xza
  1481.           Character           yzzzz          Increase       zaaaa
  1482.           Character           H06819         Increase       H06820
  1483.           =================================================================
  1484.  
  1485.                Formula:
  1486.                     Formulas are used for derived and default fields.  The
  1487.                     maximum length for formulas is 255 characters.  Long
  1488.                     formulas may be displayed in a window for editing by
  1489.                     pressing CTRL-Z (Z means zoom!).  A list of fields may
  1490.                     be displayed by pressing F9, a list of operators
  1491.                     displayed by pressing CTRL-F9 and a list of functions
  1492.                     displayed by pressing ALT-F9.  Formulas are dBASE
  1493.                     expressions.  See Appendix B:  Formulas and Functions.
  1494.  
  1495.                     Note that if a field name is used in a formula, the
  1496.                     preceding database name must also be included if the
  1497.                     field is from a foreign database (e.g.
  1498.                     CLIENT->SURNAME).  This is not necessary if the field
  1499.                     is found in the primary database file.
  1500.  
  1501.                Automatic cursor advance on full field? (Y/N)
  1502.                     When the field is fully filled, then the cursor will
  1503.                     automatically move to the next field.
  1504.  
  1505.                     ==> The default is NO.
  1506.  
  1507.  
  1508.           
  1509.                                                                     Page 21
  1510.  
  1511.                Formula error handling? (Y/N)
  1512.                     Formula error handling allows precise control over a
  1513.                     field value using a formula.  This question is asked
  1514.                     only for fields that have both a read and write display
  1515.                     status.
  1516.  
  1517.                     ==> The default is NO.
  1518.  
  1519.                Error Formula:
  1520.                     If formula error handling is requested, an error
  1521.                     formula must be entered.  An error formula is a dBASE
  1522.                     expression that evaluates to a logical TRUE or FALSE. 
  1523.                     A FALSE evaluation will result in the field being
  1524.                     rejected.  The error formula is evaluated upon exiting
  1525.                     the field.  The maximum length for formulas is 255
  1526.                     characters.  Long formulas may be displayed in a window
  1527.                     for editing, by pressing CTRL-Z (Z means zoom!).
  1528.  
  1529.                Error Message:
  1530.                     The error message may be up to 60 characters in length. 
  1531.                     It is displayed in a window in the middle of the screen
  1532.                     if the error formula is evaluated to be FALSE. 
  1533.                     Generally, this message should have meaningful
  1534.                     information to help the user enter a correct field
  1535.                     value.
  1536.  
  1537.                The following table shows an example of error formulas and
  1538.                the resultant error messages if the given values were
  1539.                entered into the respective fields.
  1540.  
  1541.           =================================================================
  1542.           Error Formula       SALE_PRICE     COST_PRICE     Error Message
  1543.           -----------------------------------------------------------------
  1544.           SALE_PRICE>COST_PRICE    13.95     15.00          ERROR: SALE
  1545.                                                             PRICE IS LESS
  1546.                                                             THAN COST
  1547.                                                             PRICE!
  1548.           SALE_PRICE>COST_PRICE    16.95     15.00          No error
  1549.                                                             displayed.
  1550.           =================================================================
  1551.  
  1552.                Help Message:
  1553.                     Each user entered field may have a help message
  1554.                     associated with it.  The help message is up to 70
  1555.                     characters and is displayed on line 23.  Try to make
  1556.                     this message useful for the person doing data entry. 
  1557.                     For example: a customer number field may have the
  1558.                     message, "Enter a five digit number to find the
  1559.                     customer".
  1560.  
  1561.  
  1562.  
  1563.  
  1564.  
  1565.  
  1566.           
  1567.                                                                     Page 22
  1568.  
  1569.  
  1570.           Calculated Fields
  1571.           -----------------
  1572.  
  1573.           Calculated fields are not real fields but are called virtual
  1574.           fields.  That is, they do not exist in a database file but just
  1575.           appear on the form and exist only in the memory of the computer. 
  1576.           Their value is obtained from formulas that may have fields,
  1577.           constants, functions and operators.
  1578.  
  1579.                Calculated Field Definitions
  1580.                ----------------------------
  1581.  
  1582.                Calculated fields are placed by moving the cursor over to
  1583.                the desired location and pressing F7.  Calculated fields are
  1584.                defined by the same process as database fields; by answering
  1585.                a series of questions.  The value of a calculated field may
  1586.                be used by a formula in another calculated field.  In order
  1587.                to reference a calculated field, the field name must be
  1588.                prefixed by the database name, "CAL_F->".  This indicates
  1589.                that it is a calculated field and that it is in a form (as
  1590.                indicated by the "F").
  1591.  
  1592.                Fieldname:
  1593.                     Calculated field names are defined in the same way as
  1594.                     database field names.  Calculated fields must have a
  1595.                     field name so that they may be referenced by other
  1596.                     calculated fields.
  1597.  
  1598.                Calculation type? (S)um (A)verage (H)igh (L)ow (C)ount
  1599.                (F)ormula:
  1600.                     Six different types of calculated fields are supported
  1601.                     by PRO-dVelBase.  They may be divided into two groups: 
  1602.                     summary and formula.
  1603.  
  1604.                     Summary Calculated Fields
  1605.                     -------------------------
  1606.                     The summary fields are sum, average, high, low and
  1607.                     count.  As its name indicates, these different field
  1608.                     types are summary operators based upon a particular
  1609.                     formula.  They are particularly useful in one-to-many
  1610.                     relationships where you would like to determine the
  1611.                     sum, average, high, low or count of a certain column of
  1612.                     numbers or fields.
  1613.  
  1614.                     Formula Calculated Fields
  1615.                     -------------------------
  1616.                     A formula calculation type is not a summary operator. 
  1617.                     That is, it does not require that a one-to-many
  1618.                     relationship exist.  The formula is entered, as defined
  1619.                     in the appendix.  Its value will automatically appear
  1620.                     once the appropriate values that it references have
  1621.                     been entered.  This is exactly how a derived field
  1622.                     works but this field is not saved.
  1623.  
  1624.           
  1625.                                                                     Page 23
  1626.  
  1627.                What is the field type of the calculated field? (C)har
  1628.                (N)umeric (D)ate:
  1629.                     Calculated fields may be either character, numeric or
  1630.                     date type.  Summary fields are always of numeric type
  1631.                     therefore, this question will not even be asked for
  1632.                     summary fields.
  1633.  
  1634.                     ==> The default is (C)har.
  1635.  
  1636.                Is this field hidden?
  1637.                     Calculated fields may be hidden from view.  The purpose
  1638.                     of having a hidden calculated field is that it acts
  1639.                     like a temporary variable holding an intermediate
  1640.                     result.  Other fields may then reference this field for
  1641.                     further calculations.
  1642.  
  1643.                     ==> The default is NO.
  1644.  
  1645.                What is the length of this field?
  1646.                     The field length of calculated fields represents the
  1647.                     resulting display width on the screen.  For numeric
  1648.                     calculated fields, the maximum field length is 19.
  1649.  
  1650.                How many decimal places are there?
  1651.                     The decimal places may be set for numeric calculated
  1652.                     fields, therefore, this question only appears for
  1653.                     numeric calculated fields.  The maximum number of
  1654.                     decimal places is 14.  Please ensure that the display
  1655.                     width is greater than the number of decimal places.
  1656.  
  1657.                Formula:
  1658.                     Formulas have a different meaning in summary fields
  1659.                     compared to formula fields.  Summary fields are used
  1660.                     when there is a one-to-many relationship.  The formula
  1661.                     for each of the one-to-many links is evaluated first
  1662.                     before the summary operator is performed.
  1663.  
  1664.                     Sum - takes the sum of the results of the formula for
  1665.                     each linkage on a one-to-many relationship.
  1666.  
  1667.                     High - finds the highest value of the results of the
  1668.                     formula for each linkage in a one-to-many relationship.
  1669.  
  1670.                     Low - finds the lowest value of the results of the
  1671.                     formula for each linkage in a one-to-many relationship.
  1672.  
  1673.                     Average - finds the arithmetic means of the results of
  1674.                     the formula for each linkage in a one-to-many
  1675.                     relationship.
  1676.  
  1677.                     Count - formulas for count must be logical expressions
  1678.                     that evaluate to either TRUE or FALSE.  The count field
  1679.                     will simply count the number of TRUE results.
  1680.  
  1681.  
  1682.           
  1683.                                                                     Page 24
  1684.  
  1685.                     Formula - formula calculated fields do not cross lines
  1686.                     in one-to-many relationships.  They are evaluated only
  1687.                     for the current line.  For example, a formula
  1688.                     calculated field evaluating a line total will just use
  1689.                     the values on that line and not any other line.
  1690.  
  1691.           Editing Text and Fields
  1692.           -----------------------
  1693.  
  1694.                Field Identification Characters
  1695.                -------------------------------
  1696.                Once the fields have been placed, you will notice some
  1697.                unusual characters at the beginning of each field display. 
  1698.                These are called field identification characters and are
  1699.                used internally by PRO-dVelBase to locate fields.  They will
  1700.                not show up on your data entry forms once you have finished
  1701.                designing your forms.  They are also helpful for you to
  1702.                quickly identify which fields are the same in a one-to-many
  1703.                relationship.
  1704.  
  1705.                Moving Text and Fields
  1706.                ----------------------
  1707.                Once fields and text have been placed on the form, their
  1708.                locations may be altered.  The process of moving fields and
  1709.                text is similar to that in any other text editor.  When in
  1710.                the insert mode, fields and text may be pushed to the right
  1711.                by typing blank spaces.  Fields and text may be pulled to
  1712.                the left by deleting the spaces before them.  The DELETE key
  1713.                will delete text under the cursor and the BACKSPACE key will
  1714.                delete text before the cursor.  Blank lines may be inserted
  1715.                by pressing ENTER while in the insert mode.  This will only
  1716.                work if the bottom line on the form is empty otherwise
  1717.                nothing happens.  CTRL-Y will delete text (not fields) on
  1718.                the current line.  CTRL-C will center the current line.
  1719.  
  1720.                Be careful when using these techniques on memo fields.  Memo
  1721.                fields are represented by windows on the form and using
  1722.                these techniques may break the window up.  If this occurs,
  1723.                you may not be able to save the form.  Be sure the memo
  1724.                field is in the form of a rectangular window after it has
  1725.                been moved.
  1726.  
  1727.                Blocking Text and Fields
  1728.                ------------------------
  1729.                The F3 key is used to block an area of the screen.  Move the
  1730.                cursor over to the start position for blocking.  Press F3. 
  1731.                Move the cursor over to the end position for blocking. 
  1732.                Press F3 again.  The blocked area will appear in a different
  1733.                attribute depending upon what type of monitor you have. 
  1734.                This block may then be copied (press F5) or moved (press
  1735.                F6).  Pressing F3 again will unblock the area.  Using this
  1736.                procedure to copy fields is how PRO-dVelBase creates
  1737.                one-to-many relationships (see Multi-File Forms).  You will
  1738.                not be allowed to move or copy blocks beyond the edge of the
  1739.  
  1740.           
  1741.                                                                     Page 25
  1742.  
  1743.                screen.  You will also be given a warning if the target site
  1744.                already is occupied.  By moving or copying a block to a
  1745.                target site that is occupied, the previous text or field
  1746.                will be deleted.
  1747.  
  1748.                Editing Field Definitions
  1749.                -------------------------
  1750.                Field definitions may be changed by simply moving the cursor
  1751.                over to the field display and pressing F7.  The field
  1752.                definition screens will again re-appear and the answers to
  1753.                the questions may be changed.
  1754.  
  1755.                Drawing Boxes
  1756.                -------------
  1757.                Boxes may be drawn around important fields as follows.  Move
  1758.                the cursor to the corner of the area you want to box.  Start
  1759.                by pressing ALT-B.  A window will open, showing the borders
  1760.                that you may choose for drawing your box.  Select the
  1761.                appropriate box borders and draw the box using the UP, DOWN,
  1762.                LEFT or RIGHT keys.  Once the box is drawn, press ENTER to
  1763.                complete the drawing of the box or press ESC to abort the
  1764.                drawing.
  1765.  
  1766.                Boxes may be deleted by selecting the box containing no
  1767.                drawing character and using that to draw on top of an
  1768.                existing box.
  1769.  
  1770.                IBM Extended Graphics Characters
  1771.                --------------------------------
  1772.                The IBM Extended Graphics Characters (ASCII values greater
  1773.                than 127) may be placed by pressing ALT-C.  Place the cursor
  1774.                over the location where the character is to be placed.  A
  1775.                window will open, showing the various characters that may be
  1776.                placed.  Select the appropriate character and press ENTER to
  1777.                place the character or press ESC to abort placing.  One of
  1778.                the purposes of this feature is to allow the placing of the
  1779.                intersections for the boxes drawn.
  1780.  
  1781.                Moving to Next/Previous Screen
  1782.                ------------------------------
  1783.                Text and fields may be placed on up to 5 screens.  The
  1784.                PAGEUP and PAGEDOWN keys will move between various screens.
  1785.  
  1786.                Deleting Fields
  1787.                ---------------
  1788.                Fields are deleted by simply placing the cursor over them
  1789.                and pressing the DELETE key.  A confirmation will be asked
  1790.                first before allowing to proceed.  If the cursor is in a
  1791.                field that is linked to another field, pressing the DELETE
  1792.                key will first delete the linkage and then the field itself
  1793.                may be deleted by pressing DELETE again.
  1794.  
  1795.  
  1796.  
  1797.  
  1798.           
  1799.                                                                     Page 26
  1800.  
  1801.  
  1802.           Multi-File Forms
  1803.           ----------------
  1804.  
  1805.           The true power of PRO-dVelBase comes from its ability to relate
  1806.           forms and their underlying database files together easily. 
  1807.           Relating forms allows information to be stored only once thus
  1808.           saving disk space and facilitating updating of that information.
  1809.  
  1810.           When you design any kind of a database application, you should
  1811.           first try to design all of your basic forms and database files
  1812.           i.e. all forms that only have one database file in them.  After
  1813.           that you may design forms that have multiple database files
  1814.           related together.  This is called the bottom up approach.
  1815.  
  1816.           Steps to relating forms:
  1817.            1.  Place the cursor over the key field that you would to relate
  1818.                to another form.  This field must be of char type or else it
  1819.                cannot be used as a key.
  1820.            2.  When the cursor is in the field, press ALT-F7 and a window
  1821.                will appear with all the forms previously created in the
  1822.                current directory.  Select the one that you would like to
  1823.                relate to.
  1824.            3.  Next a window appears with all the fields in that form that
  1825.                are indexed.  Select the key field of that child database
  1826.                file and press ENTER.  This links the 2 database files
  1827.                through their key fields.
  1828.  
  1829.                 Note:    The key field in the foreign database file must be
  1830.                          indexed before this can occur.  If it has not been
  1831.                          indexed, you must go back to the primary form
  1832.                          containing that field and index the field first.
  1833.  
  1834.           Next you will see the Foreign Database Relationship Definitions
  1835.           screen and questions will be asked that define the relationship.
  1836.  
  1837.                Foreign Database Relationship Definitions
  1838.                -----------------------------------------
  1839.  
  1840.                (L)ink or (C)opy fields?
  1841.                     There are two types of operations that may be done: 
  1842.                     linking or copying.
  1843.  
  1844.                     When databases are linked through key fields, the
  1845.                     editing of fields from a child database will change
  1846.                     them in the child database.  The fields of the child
  1847.                     database do not exist in the parent database.
  1848.  
  1849.                     Copying is when the fields of the child database also
  1850.                     exist in the parent database.  The values of matching
  1851.                     fields from the child database are copied directly into
  1852.                     the corresponding field in the parent database.
  1853.  
  1854.                     Generally, linking should be chosen because it will
  1855.  
  1856.           
  1857.                                                                     Page 27
  1858.  
  1859.                     reduce the duplication of redundant data.  For example,
  1860.                     it is not necessary to store a person's name and
  1861.                     address in 2 different databases when storing that
  1862.                     information into one database will be sufficient. 
  1863.                     Secondly, by linking, changes that are made in one
  1864.                     database will be reflected in all the databases that
  1865.                     are linked to it.
  1866.  
  1867.                     You would use copying of fields if the field values are
  1868.                     to be fixed and not affected by any updates done in the
  1869.                     foreign database.  For example, in an invoicing system
  1870.                     where the foreign inventory database has a particular
  1871.                     item at a particular price in time.  The price should
  1872.                     be copied over to the invoice database because any
  1873.                     price increases in the inventory database should not be
  1874.                     reflected in the invoice database after the invoice has
  1875.                     been generated and the item shipped.
  1876.  
  1877.                Delete linked record if primary record deleted? (Y/N)
  1878.                     Answering YES to this question will cause linked
  1879.                     records to be deleted when the record on the primary
  1880.                     database is deleted.  For some linked records you may
  1881.                     not want this to occur.  For example, when a customer
  1882.                     record is linked to an invoice record, deleting the
  1883.                     invoice record should not delete the customer record. 
  1884.                     In other situations, deletion of linked records should
  1885.                     occur.  For example, when an invoice record is linked
  1886.                     in a one-to-many relationship to a group of details
  1887.                     records (each record containing the details of a given
  1888.                     invoice transaction), all the details records should be
  1889.                     deleted automatically when the invoice record is
  1890.                     deleted.  This process is called referential integrity.
  1891.  
  1892.                Is this a one-to-many link? (Y/N)
  1893.                     Only 1 one-to-many link is allowed per form.  Up to 10
  1894.                     links may occur on any one form.  A one-to-many link is
  1895.                     used in situations where you would like to link one
  1896.                     record in the primary database to many records in a
  1897.                     foreign database.  PRO-dVelBase allows you to create a
  1898.                     link with up to 20 records on the many side of the
  1899.                     relationship.  This may be used in an invoicing system
  1900.                     where a customer may buy more than one item but the
  1901.                     number of items is not known at the time of database
  1902.                     creation.
  1903.  
  1904.                Reject if value does not exist in the foreign database?
  1905.                     This allows a check to be made if a particular value
  1906.                     exists in a foreign database.  Answer YES if you would
  1907.                     like any non-existent value to be rejected.  This may
  1908.                     be used in an inventory system to ensure that a
  1909.                     particular item is present in the inventory database
  1910.                     before it can be accessed.
  1911.  
  1912.           After the key field has been defined, place the subsequent fields
  1913.  
  1914.           
  1915.                                                                     Page 28
  1916.  
  1917.           on the screen.  This is how you would place them.  If you
  1918.           selected (L)ink fields, move the cursor over to an empty area. 
  1919.           Press ALT-F7.  Then select the next field to be transferred over. 
  1920.           Then move to the next area to place another field.  Continue this
  1921.           process until you have transferred all the fields you would like
  1922.           to transfer.  When you have finished, press F10 to indicate that
  1923.           the process of transferring fields is completed.
  1924.  
  1925.           If you have selected (C)opy fields, the cursor will only be
  1926.           allowed to move into other fields that are in the parent database
  1927.           file.  Move the cursor into the first field that you want data to
  1928.           be copied into.  Select ALT-F7 again, then select the field you
  1929.           would like to be copied from and press ENTER.  Continue this
  1930.           until you have finished.  Again, press F10 to signify that you
  1931.           have completed this task.
  1932.  
  1933.           If you have set up a one-to-many relationship, subsequent lines
  1934.           can be created by performing a block and copy.  Move the cursor
  1935.           to the beginning of the area you would like to block.  Press F3. 
  1936.           Then move the cursor to the end of the area you would like to
  1937.           block and press F3 again.  Next move the cursor to the area you
  1938.           would like to copy to.  Press F5.  Every time you press F5, the
  1939.           blocked area will be replicated.  Continue pressing F5 until you
  1940.           have reproduced as many lines as needed.  Then press F3 again to
  1941.           unblock the blocked area.  By using this technique, you may
  1942.           create multiple lines and fields for data entry in a one-to-many
  1943.           relationship.  You may only block and copy up to 20 lines as this
  1944.           is the maximum that PRO-dVelBase handles in a one-to-many
  1945.           relationship.  Any additional lines will be ignored.  The key
  1946.           field does not need to be copied in the block as it only has to
  1947.           appear once on the form.  PRO-dVelBase automatically recognizes
  1948.           this as a one-to-many relationship and the key field value will
  1949.           be copied appropriately into each record.  In a situation where
  1950.           you know how many lines are required, this is all that is
  1951.           necessary.  If an unknown number of lines are required, you
  1952.           should design a scroll window.
  1953.  
  1954.                Scroll Window
  1955.                -------------
  1956.  
  1957.                A scroll window is designed around a one-to-many
  1958.                relationship and it allows the records in that area to be
  1959.                scrolled up and down.  This allows the user to enter up to
  1960.                20 records at a time.  To set up a scroll window, place the
  1961.                cursor before the first field of a one-to-many relationship. 
  1962.                Press ALT-S and a window will open.  Move the end of the
  1963.                window to the bottom of the area that you want scrolled and
  1964.                press ENTER again.  You will notice two small field
  1965.                identification characters appear in the corners of the
  1966.                window.  These characters will not appear on the data entry
  1967.                screen.  They are simply used by PRO-dVelBase to identify
  1968.                the boundaries of the scroll window.  On the data entry
  1969.                screen, an up arrow will appear in the upper scroll field if
  1970.                the window has been scrolled up and a down arrow will appear
  1971.  
  1972.           
  1973.                                                                     Page 29
  1974.  
  1975.                in the lower scroll field if the window has been scrolled
  1976.                down and there are more records beneath the scroll window.
  1977.  
  1978.                A scroll window may be deleted by moving the cursor to one
  1979.                of the field identification characters and pressing DELETE.
  1980.  
  1981.                Steps to Removing Relationships
  1982.                -------------------------------
  1983.  
  1984.                Once a relationship or series of relationships have been
  1985.                defined, how do you remove them?  Removal of relationships
  1986.                is quite simple.
  1987.  
  1988.                Find the key field that relates it to another form.  The key
  1989.                field is indicated by having the names of the fields
  1990.                flashing when the cursor is in it.
  1991.  
  1992.                With the cursor in the field, press the DELETE key.  A
  1993.                confirmation message will appear before the relationship is
  1994.                removed.  All fields in the related database file and
  1995.                secondary or tertiary files, etc.  will also be removed.
  1996.  
  1997.                In one-to-many relationships, the effects of the DELETE key
  1998.                is slightly different.  The relationship definition is
  1999.                stored in the first occurrence of a key field on the form. 
  2000.                If the cursor is in the first occurrence of a key field and
  2001.                the DELETE key is pressed then the relationship is removed
  2002.                and all related fields will be removed.  If the cursor is in
  2003.                subsequent occurrences of a key field then deletion will not
  2004.                remove the relationship but will remove all the related
  2005.                fields from that occurrence on.  The relationship will still
  2006.                be maintained in previous occurrences of the key field.
  2007.  
  2008.           Saving a Form
  2009.           --------------
  2010.  
  2011.           Upon completion of the form, press F10.  This performs a validity
  2012.           check on the form.  If any errors have occurred, a message will
  2013.           appear and appropriate actions must be taken to correct them
  2014.           before the form may be saved.  If there are any errors in any of
  2015.           the fields, the cursor will usually drop to that field.  Refer to
  2016.           Appendix C:  Warning and Error Messages, for the meaning of these
  2017.           messages.  At this point, a descriptive file name may also be
  2018.           given for the form.  A database file is automatically created
  2019.           when the form is saved.
  2020.  
  2021.           B. Form/Modify
  2022.           ==============
  2023.  
  2024.           To modify a form:
  2025.            1.  Use Form/Select to select the form you would like to modify.
  2026.            2.  Use Form/Modify to start modifications.  The form will be
  2027.                displayed, allowing you to modify the form along with the
  2028.                underlying database.  Field definitions may be changed by
  2029.  
  2030.           
  2031.                                                                     Page 30
  2032.  
  2033.                moving the cursor over to the appropriate field and pressing
  2034.                F7.  Any definition may be altered except for the field
  2035.                name.  The only way that a field name may be altered is by
  2036.                deleting the field and creating a new field.  Please note
  2037.                that by doing this any data already entered into that field
  2038.                will be deleted.  The Foreign Database Relationship
  2039.                Definitions may be altered by moving the cursor over to the
  2040.                key field and pressing ALT-F7.
  2041.            3.  Press F10 to save the modified form.
  2042.  
  2043.            Note:    If the fields in the primary database file associated
  2044.                     with a form are modified (fields deleted, fields added,
  2045.                     field lengths changed or field types changed), the
  2046.                     changes will also occur to the database.  If a field is
  2047.                     shortened, data values may become truncated.  The
  2048.                     original database files are stored as backup database
  2049.                     files with the extension .BAK and if there is any
  2050.                     associated memo field, it will have the extension .TBK.
  2051.  
  2052.           C. Form/Select
  2053.           ==============
  2054.  
  2055.           When using the Form/Select command, you are simply choosing the
  2056.           form that you want to use for subsequent operations.  Examples of
  2057.           such operations may include data entry, querying, report
  2058.           generation, label generation and mail merge.
  2059.  
  2060.           The Form/Select command will open the database file(s) that have
  2061.           been defined in the form.  All other objects and commands in the
  2062.           menu are dependent upon the selected form.  If no form is
  2063.           selected, then you may not access any other object on the main
  2064.           menu.  Thus, before any other operations are performed, you must
  2065.           select a form.
  2066.  
  2067.           Error checking automatically occurs at the time of selection. 
  2068.           All the formulas are checked along with the various fields.  If
  2069.           there are any errors, a message will appear and appropriate
  2070.           action must be taken to correct the problem before the form can
  2071.           be executed.  The most common error occurs when a field has been
  2072.           deleted or modified.  Related forms that reference this field
  2073.           will then generate an error unless they are updated.  The form
  2074.           may be UNEXECUTABLE and/or UNMODIFIABLE depending upon the nature
  2075.           of the error.  Also the form name will be in lower case in the
  2076.           work area if an error occurs.  Refer to the appendix for a
  2077.           complete list of error messages and appropriate steps to correct
  2078.           them.
  2079.  
  2080.            Note:    You must select the form that you want to use from a
  2081.                     directory.  This directory will only list the forms
  2082.                     that you have previously created and saved.
  2083.  
  2084.                     If there are no forms created and you try to select a
  2085.                     form, you will get an error message.  To create your
  2086.                     form, see Form/Create.
  2087.  
  2088.           
  2089.                                                                     Page 31
  2090.  
  2091.           To Select a Form:
  2092.            1.  Choose Form/Select.
  2093.                At this point a window will open and a directory of the
  2094.                existing forms will be displayed.  The description of each
  2095.                form is also shown.  This window may not be able to show all
  2096.                the forms that you have created.  However, by using the UP
  2097.                or DOWN keys you may scroll through the entire list of
  2098.                forms.  To alert you to the fact that there are more forms
  2099.                on your list, you will see arrows along the border of the
  2100.                window, pointing in the direction that you may scroll.
  2101.            2.  Place the cursor bar over the form that you want to select
  2102.                and press ENTER.
  2103.  
  2104.           At this point, you have chosen the form that you want to use. 
  2105.           Your work area will indicate the name and description of the form
  2106.           that you have chosen.  It will be displayed beside Selected Form
  2107.           towards the top of the work area.  Also note that the data
  2108.           directory will be displayed at the bottom of the work area.  This
  2109.           indicates the directory that your form resides in.  Now that you
  2110.           have selected your form, you may perform various operations on
  2111.           it.
  2112.  
  2113.           D. Form/Execute
  2114.           ===============
  2115.  
  2116.           The Form/Execute command is used for data entry and editing of
  2117.           data.
  2118.  
  2119.           When you select Form/Execute, a blank data entry screen will be
  2120.           displayed and new data may be entered.  If some data is already
  2121.           entered, you will be at the end of the file (EOF).
  2122.  
  2123.           The bottom four lines of the screen make up the information area. 
  2124.           The first line is the database information line.  Reading from
  2125.           left to right, the information identifies the:
  2126.            1.  Field you are reading from.  The information is in the form
  2127.                of:  database file name -> field name.
  2128.            2.  Field you are writing to.
  2129.            3.  Current record number in the primary database file.  The
  2130.                notation is in the form of:  current record/total records. 
  2131.                If you are at the end of the file, the record you are at
  2132.                would be EOF.  This means that data entered into the form
  2133.                will be appended (i.e. added to the end of the file.)
  2134.            4.  The word "Del" if the current record is marked for deletion.
  2135.  
  2136.           In most cases, the database information line will indicate that
  2137.           the field you are reading from is identical to the field you are
  2138.           writing to.  However, if the cursor in on a key field that
  2139.           relates to a secondary database file, this is not the case.
  2140.  
  2141.           The second line in the information area is the message line.  It
  2142.           provides messages as necessary, to prompt you for further action.
  2143.  
  2144.           The third line in the information area is the active keys line. 
  2145.  
  2146.           
  2147.                                                                     Page 32
  2148.  
  2149.           Not all the active keys are shown but only the main ones.  Any
  2150.           active keys that are CTRL or ALT keys may be displayed by
  2151.           pressing down the CTRL key or the ALT key.  The display for the
  2152.           active keys line will change.  The active keys of the
  2153.           Form/Execute command are as follows.
  2154.  
  2155.           ================================================================
  2156.           Key                      Action
  2157.           ----------------------------------------------------------------
  2158.           ENTER or TAB        finished entering data into a field and moves
  2159.                               cursor to next field.
  2160.           SHIFT-TAB           moves the cursor to the previous field.
  2161.           RIGHTKEY            moves the cursor one position to the right in
  2162.                               a field.  If the cursor is at the end of a
  2163.                               field, it will jump to the next field.
  2164.           LEFTKEY             moves the cursor one position to the left in
  2165.                               a field.  If the cursor is at the start of a
  2166.                               field, it will jump to the previous field.
  2167.           UPKEY               moves the cursor up to the field on the
  2168.                               previous line.
  2169.           DOWNKEY             moves the cursor down to the field on the
  2170.                               next line.
  2171.           HOME                moves the cursor to the start of a field.
  2172.           END                 moves the cursor to the end of a field.
  2173.           BACKSPACE           deletes the character before the cursor.
  2174.           DELETE              deletes the character under the cursor.
  2175.           INSERT              toggles between insert mode and overwrite
  2176.                               mode.
  2177.           CTRL-C              recalculates calculated and derived fields.
  2178.           CTRL-D              marks a record, that has been saved, for
  2179.                               deletion.  However, if you use CTRL-D while
  2180.                               appending a record and you have not saved the
  2181.                               record yet, the record will be cleared and
  2182.                               not saved.  Also, if there are any linked
  2183.                               records, they will also be marked for
  2184.                               deletion if the question, "Delete linked
  2185.                               record if primary record deleted?", was
  2186.                               answered YES.  Pressing CTRL-D on a record
  2187.                               already marked for deletion will undelete it
  2188.                               and remove the mark.
  2189.           CTRL-L              prints the current record based on the
  2190.                               selected label.  This will work only if a
  2191.                               label has been previously selected.
  2192.           CTRL-M              prints the current record based on the
  2193.                               selected mail.  This will work only if mail
  2194.                               has been selected for purposes of a mail
  2195.                               merge.
  2196.           CTRL-R              prints the current record based on the
  2197.                               selected report.  This will work only if a
  2198.                               report has been selected.
  2199.           CTRL-U              undo key.  Any changes made to a record will
  2200.                               be undone as long as it has not been saved.
  2201.           CTRL-Y              clears the data in the field where the cursor
  2202.                               is at.
  2203.  
  2204.           
  2205.                                                                     Page 33
  2206.  
  2207.           CTRL-HOME           moves to the first screen of the first
  2208.                               record.
  2209.           CTRL-END            moves to the append record.
  2210.           F1                  context sensitive help.
  2211.           F2                  used to view an underlying database file,
  2212.                               whether it be the primary or foreign
  2213.                               database.  The database, which is being read
  2214.                               from, will be displayed in table view in
  2215.                               sequential order.
  2216.           ALT-F2              used to view the database file being read
  2217.                               from in indexed order in table view based
  2218.                               upon any index.
  2219.           CTRL-F2             used to view the underlying database file in
  2220.                               indexed order in table view based upon the
  2221.                               current index and field value.
  2222.           F5                  used to bring up pre-set data in a field
  2223.                               whose value has been defined as a copied,
  2224.                               defaulted or sequential.
  2225.           F8                  brings up the search menu.
  2226.           F10                 saves the current records and moves to the
  2227.                               next one.
  2228.           PAGEDOWN            moves to the next screen of the current
  2229.                               record or the first screen of the next record
  2230.                               if the current screen is the last screen of
  2231.                               the current record.
  2232.           PAGEUP              moves to the previous screen of the current
  2233.                               record or the last screen of the previous
  2234.                               record if the current screen is the first
  2235.                               screen of the current record.
  2236.           CTRL-PAGEUP         moves to the first screen of the previous
  2237.                               record.
  2238.           CTRL-PAGEDOWN       moves to the first screen of the next record.
  2239.           ESC                 aborts the process of data entry and returns
  2240.                               to the main menu.
  2241.           =================================================================
  2242.  
  2243.           Appending and Editing Records
  2244.           -----------------------------
  2245.  
  2246.           Upon execution of a form, PRO-dVelBase places the record counter
  2247.           at the end of file (EOF).  At this position records will be added
  2248.           (appended) to the primary database associated with the form.
  2249.  
  2250.           The natural direction of cursor movement is from left to right
  2251.           then top to bottom.  The UPKEY moves the cursor to the closest
  2252.           field on the prevous line while the DOWNKEY moves the cursor to
  2253.           the next line.  The cursor will jump over fields that are
  2254.           write-only or calculated fields.
  2255.  
  2256.           The allowed data in a field is determined by how the field was
  2257.           defined.
  2258.  
  2259.           If you enter a value into a key field and this value is present
  2260.           in the related database, then the fields of that related database
  2261.  
  2262.           
  2263.                                                                     Page 34
  2264.  
  2265.           will be automatically retrieved and displayed on the form.  If it
  2266.           is not present, then the field values entered will be appended to
  2267.           the related database.  If the relationship was defined as being
  2268.           copied instead of linked, this will not happen and the field
  2269.           values will only be stored in the parent database.
  2270.  
  2271.           Upon completion of the last field on a form, the record(s) will
  2272.           be automatically saved and the record counter incremented. 
  2273.           Remember that if a form is a multi-file form, all updated records
  2274.           will be saved in an all or none fashion.  If the form is aborted
  2275.           by pressing ESC before it is finished, all the field values will
  2276.           not be saved.  This process is called a transaction.
  2277.  
  2278.           If you would like to save a form before all the fields are
  2279.           filled, press F10.  F10 causes a save to be made unless the
  2280.           cursor is in an one-to-many area (where it means go to the next
  2281.           field beyond the one-to-many area) or if in a memo field (where
  2282.           it means go to the next field).  Pressing F10 will evoke error
  2283.           checking to ensure all required fields have data in them and all
  2284.           error formulas evaluate to be TRUE.
  2285.  
  2286.           Previous forms may be viewed by pressing the CTRL-PAGEUP key (or
  2287.           just PAGEUP if the form only has one screen).  The fields on the
  2288.           form may then be edited and it will be automatically saved when
  2289.           the cursor passes the last field on the form or if F10 is
  2290.           pressed.
  2291.  
  2292.           If you are using the PAGEUP, PAGEDOWN, CTRL-PAGEUP,
  2293.           CTRL-PAGEDOWN, CTRL-HOME or CTRL-END keys to move between
  2294.           different forms and changes are made to the fields, a warning
  2295.           will be given to indicate that a field was changed on the form
  2296.           and the option will be given to save the changes or discard them. 
  2297.           No such warning is given if F10 is pressed to save a form.  If a
  2298.           form is being appended and one of these keys is pressed, the
  2299.           contents of the form is not saved onto the disk but is retained
  2300.           in memory in a separate buffer.  The records must be explicitly
  2301.           saved by pressing F10 or completing the last field on the form.
  2302.  
  2303.                Editing Character Fields
  2304.                ------------------------
  2305.                Character fields appear left justified and may have a
  2306.                picture present for formatting within the field display. 
  2307.                They are the only field types that allow horizontal
  2308.                scrolling if the field length is greater than the field
  2309.                display.
  2310.  
  2311.                Editing Numeric Fields
  2312.                ----------------------
  2313.                Numeric fields are displayed right justified within the
  2314.                display and have the decimal place in a fixed position. 
  2315.                Upon entering a numeric field, the cursor initially drops to
  2316.                the first position on the left.  After the number is
  2317.                entered, the field is right justified upon exiting the
  2318.                display.
  2319.  
  2320.           
  2321.                                                                     Page 35
  2322.  
  2323.                Editing Logical Fields
  2324.                ----------------------
  2325.                Logical fields have either a TRUE or FALSE value.  A TRUE
  2326.                value is represented by "T" or "Y".  A FALSE value is
  2327.                represented by "F", "N" or a null field value.
  2328.  
  2329.                Editing Single Key Fields
  2330.                -------------------------
  2331.                Single key fields only have one character.  The valid
  2332.                characters depend upon how the field was defined.
  2333.  
  2334.                Editing Date Fields
  2335.                -------------------
  2336.                Date fields are displayed with one of three templates: 
  2337.                "mm/dd/yy", "dd/mm/yy" or "yy/mm/dd".  The template is
  2338.                determined by how the field was initially defined.  These
  2339.                templates indicate which positions the day, month and year
  2340.                should go.  A date field cannot be partially filled.
  2341.  
  2342.                Editing Time Fields
  2343.                -------------------
  2344.                Time fields are displayed with one of four templates: 
  2345.                "hh:mm", "hh:mm:ss", "hh:mmp" or "hh:mm:ssp".  The template
  2346.                is determined by how the field was initially defined.  These
  2347.                templates indicate which positions the hours, minutes and
  2348.                seconds should go.  The "p" in the template indicates that
  2349.                time is in 12 hour format and an A or P should be entered at
  2350.                this position to indicate whether the time is am or pm.  A
  2351.                time field cannot be partially filled.
  2352.  
  2353.                Editing Memo Fields
  2354.                -------------------
  2355.                Memo fields are displayed as windows on the form and the
  2356.                active keys are slightly different in them.  If the length
  2357.                of a memo field is greater than what can fit into the
  2358.                window, the field may be scrolled vertically in the window.
  2359.  
  2360.  
  2361.  
  2362.  
  2363.  
  2364.  
  2365.  
  2366.  
  2367.  
  2368.  
  2369.  
  2370.  
  2371.  
  2372.  
  2373.  
  2374.  
  2375.  
  2376.  
  2377.  
  2378.           
  2379.                                                                     Page 36
  2380.  
  2381.  
  2382.                The following table indicates the keys that have a different
  2383.                action in memo fields than in other fields.
  2384.  
  2385.           =================================================================
  2386.           Key            Action
  2387.           -----------------------------------------------------------------
  2388.           ENTER          places a carriage return at the current cursor
  2389.                          location.
  2390.           TAB            moves cursor 10 spaces to the right.
  2391.           SHIFT-TAB      moves cursor 10 spaces to the left.
  2392.           RIGHTKEY       moves the cursor one position to the right.  If
  2393.                          the cursor is at the end of a field, it will jump
  2394.                          to the next field.
  2395.           LEFTKEY        moves the cursor one position to the left.  If the
  2396.                          cursor is at the start of a field, it will jump to
  2397.                          the previous field.
  2398.           UPKEY          moves the cursor up to the previous line.  If the
  2399.                          cursor is at the first line, it will jump to the
  2400.                          field above it.
  2401.           DOWNKEY        moves the cursor down to the next line.  If the
  2402.                          cursor is at the last line, it will jump to the
  2403.                          field below it.
  2404.           HOME           moves the cursor to the start of a line.
  2405.           END            moves the cursor to the end of a line.
  2406.           F10            finished editing the memo field and cursor jumps
  2407.                          to next field.
  2408.           PAGEDOWN       displays the previous window screen.
  2409.           PAGEUP         displays the next window screen.
  2410.           =================================================================
  2411.  
  2412.                Editing Fields in a One-to-Many Area
  2413.                ------------------------------------
  2414.                Data entry in a one-to-many area is similar to data entry in
  2415.                other fields with a few exceptions.  First, pressing F10
  2416.                will only allow the cursor to jump to the next field beyond
  2417.                the one-to-many area.  Second, if the area is enclosed by a
  2418.                scroll window, the UPKEY and DOWNKEY will cause the window
  2419.                to scroll if at the top or bottom.  Third, if the cursor is
  2420.                beyond a one-to-many area and the UPKEY is pressed, the
  2421.                cursor will jump to the last line that has any field values
  2422.                entered and not the last empty line.  Fourth, calculated
  2423.                formula fields only evaluate for the current line.
  2424.  
  2425.           Table View
  2426.           ----------
  2427.  
  2428.           In table view, each record is shown in a row and the fields are
  2429.           displayed in columns.  All field values are displayed with their
  2430.           templates except for memo fields, which are only displayed with
  2431.           the four letter word "MEMO" (if text is present in the field) or
  2432.           "memo" (if text is not present).
  2433.  
  2434.           Record numbers are listed down the left hand side.  A vertical
  2435.  
  2436.           
  2437.                                                                     Page 37
  2438.  
  2439.           line separates the record numbers from the fields of the
  2440.           database.  Deleted records are identified by a diamond that is
  2441.           positioned in place of this vertical line and if the cursor is
  2442.           over a deleted record the word "Del" appears near the bottom.
  2443.  
  2444.           Pressing F2 activates table mode for the database file that is
  2445.           being read from.  In most fields, it is the same as the one being
  2446.           written to.  The only field where the read is different from the
  2447.           write is the key field.  PRO-dVelBase was designed in this way to
  2448.           allow "look-ups" in foreign database files.
  2449.  
  2450.           When the database is displayed in table mode, you may either view
  2451.           or edit the database.  Initially, you will be in the view mode. 
  2452.           You are not allowed to edit the fields until you use the edit key
  2453.           (E) to get into edit mode.
  2454.  
  2455.           The active keys in the table view mode are as shown in the
  2456.           following table.
  2457.  
  2458.           =================================================================
  2459.           Active Keys         Action
  2460.           -----------------------------------------------------------------
  2461.           HOME                moves to the first field.
  2462.           END                 moves to last field.
  2463.           F1                  context sensitive help.
  2464.           F8                  brings up the search menu.
  2465.           PAGEUP              scrolls up 20 records.
  2466.           PAGEDOWN            scrolls down 20 records.
  2467.           UP, DOWN, LEFT, 
  2468.           RIGHT, TAB, 
  2469.           SHIFT-TAB, 
  2470.           CTRL-LEFT, 
  2471.           CTRL-RIGHT          moves the cursor in the direction of the
  2472.                               arrow.
  2473.           CTRL-HOME           moves to the first record.
  2474.           CTRL-END            moves to the last record.
  2475.           CTRL-D              marks and unmarks the current record for
  2476.                               deletion.  Advances cursor to next record.
  2477.           E                   used to enter into table edit mode.
  2478.           T or ENTER          used to transfer the record, which the cursor
  2479.                               is on, into the form.
  2480.           V                   used to select which fields should appear in
  2481.                               the table and what order they are to appear
  2482.                               in.
  2483.           A                   used to append any records onto the end of
  2484.                               the database.
  2485.           =================================================================
  2486.  
  2487.                Altering Table View
  2488.                -------------------
  2489.                The following procedure allows you to select the fields that
  2490.                you want to view and to alter the order in which you view
  2491.                these fields.  This is done in the table view mode.
  2492.                 1.  Press V.  Two windows are displayed.  The left window
  2493.  
  2494.           
  2495.                                                                     Page 38
  2496.  
  2497.                     displays all the fields present in the database.  The
  2498.                     right window is initially empty.
  2499.                 2.  Place the cursor, which is in the left window, on the
  2500.                     first field that you want view.
  2501.                 3.  Press ENTER.  A check mark will appear beside the field
  2502.                     name, and this field name will be displayed in the
  2503.                     right window.
  2504.                 4.  Place the cursor over the next field that you want.
  2505.                 5.  Press ENTER.  A check mark will appear beside this
  2506.                     field.  Also, this second field will be displayed in
  2507.                     the right window.
  2508.                 6.  Continue this process until you have selected all of
  2509.                     the fields that you want to be seen in table view.
  2510.                 7.  To alter the order in which the fields appear in table
  2511.                     view, use the RIGHTKEY to move the cursor to the right
  2512.                     window.  Locate the field you would like to move and
  2513.                     place the cursor over this field.  Press ENTER to lock
  2514.                     the field onto the cursor.  Use the UP or DOWN key to
  2515.                     move the field to the position that you would like it
  2516.                     to be viewed in.  Press ENTER again to unlock and place
  2517.                     your field into position.
  2518.                 8.  If you have selected a field that you want to view in
  2519.                     the table view mode and then decide that you do not
  2520.                     want to view this field, you may remove it from the
  2521.                     view.  Place the cursor in the left window over the
  2522.                     field you want removed from the view.  Press ENTER and
  2523.                     the field will be removed from the view.
  2524.                 9.  Press F10 to save the view or ESC to abandon.
  2525.  
  2526.                Editing and Appending in Table Mode
  2527.                -----------------------------------
  2528.                In the table view, editing fields occurs by pressing E while
  2529.                appending occurs by pressing A.  This allows for editing of
  2530.                records directly from the table.  This has the advantage of
  2531.                being able to see and edit many records at a time.  It has
  2532.                the disadvantage of not having the changeable field
  2533.                definitions apply to the fields.  While in table edit mode,
  2534.                only the fixed field definitions apply.
  2535.  
  2536.                A record is automatically saved after the field on the last
  2537.                column is filled, if F10 is pressed or if the cursor is
  2538.                moved to another row.
  2539.  
  2540.  
  2541.  
  2542.  
  2543.  
  2544.  
  2545.  
  2546.  
  2547.  
  2548.  
  2549.  
  2550.  
  2551.  
  2552.           
  2553.                                                                     Page 39
  2554.  
  2555.  
  2556.                The active keys in table edit mode are as follows.
  2557.  
  2558.           =================================================================
  2559.           Active Keys         Action
  2560.           -----------------------------------------------------------------
  2561.           HOME                moves to the start of a field.
  2562.           END                 moves to the end of a field.
  2563.           CTRL-END            moves to the last record.
  2564.           CTRL-HOME           moves to the first record.
  2565.           CTRL-D              marks and unmarks the current record for
  2566.                               deletion.  Advances cursor to next record.
  2567.           CTRL-LEFT or 
  2568.           SHIFT-TAB, 
  2569.           CTRL-RIGHT or TAB   moves the cursor left or right one field.
  2570.           ENTER               moves the cursor one field to the right.
  2571.           ESC                 returns to the table view mode. 
  2572.           F1                  context sensitive help.
  2573.           F8                  brings up the search menu.
  2574.           F10                 saves current record.
  2575.           LEFT and RIGHT      moves the cursor left or right within the
  2576.                               field.
  2577.           PAGEUP              scrolls up 20 records. 
  2578.           PAGEDOWN            scrolls down 20 records.
  2579.           UP and DOWN         moves the cursor up or down one record.
  2580.           =================================================================
  2581.  
  2582.                Indexed Table Mode
  2583.                ------------------
  2584.                While in the form, the table may also be brought up in
  2585.                indexed order instead of sequential order.  This is done by
  2586.                pressing CTRL-F2 or ALT-F2.  The indexes used belong to the
  2587.                database being read from.  A field value also limits the
  2588.                records displayed.
  2589.  
  2590.                CTRL-F2 displays the database being read from based upon the
  2591.                index of the current field being read from.  If no index is
  2592.                present, an error message will appear.  The current value in
  2593.                the field acts as a filter to limit the records displayed in
  2594.                table view.  If a null value is present, all the records are
  2595.                displayed.  In date fields, records with null date values
  2596.                are displayed using the field value of "00/00/00".
  2597.  
  2598.                ALT-F2 allows any index present in the read database to be
  2599.                used as the primary index.  Pressing ALT-F2 will display all
  2600.                fields in the read database that have an index.  One may be
  2601.                selected and an optional filter value entered to limit the
  2602.                number of records displayed.  Entering a null value for this
  2603.                filter will cause all the records to be displayed.
  2604.  
  2605.                The active keys in indexed table mode are exactly the same
  2606.                as in the sequential table mode except that appending is not
  2607.                allowed.  Also, if a filter value is used, the search menu
  2608.                (F8) is not operational.
  2609.  
  2610.           
  2611.                                                                     Page 40
  2612.  
  2613.           The Search Menu
  2614.           ---------------
  2615.  
  2616.           It is possible to perform searches while you are using the form,
  2617.           table or query.  If the search menu may be called up, you will
  2618.           see the search key (F8 key) listed as one of the options on the
  2619.           active keys line.
  2620.  
  2621.           Press F8 to display the search menu.  The following 5 submenu
  2622.           commands are on this menu:  Goto, Search, Search & Replace,
  2623.           Search & Delete, Search & Undelete.
  2624.  
  2625.                Goto
  2626.                ----
  2627.                Goto is one of the submenu commands of the search menu.  It
  2628.                allows you to move directly to any record number you desire.
  2629.  
  2630.                The Goto command is executed as follows:
  2631.                 1.  Press F8 to bring up the search menu.
  2632.                 2.  Select Goto.
  2633.                 3.  Type the record number you want to go to.
  2634.                 4.  Press ENTER.
  2635.  
  2636.                Search
  2637.                ------
  2638.                To perform a search:
  2639.                 1.  Press F8 to bring up the search menu.
  2640.                 2.  Select search.  The fields of the database will be
  2641.                     listed in a window.
  2642.                 3.  Select the field that you would like to do the search
  2643.                     on.
  2644.                 4.  Enter the search string, that is, the value you would
  2645.                     like to search for.  If null string is used for the
  2646.                     search string, then all records will be retrieved. 
  2647.                     Searching for null dates is done by using the search
  2648.                     string "00/00/00".
  2649.                 5.  Next you will see the following prompt, "Ignore case?
  2650.                     (Y/N)".  For a case sensitive search, type N.  For a
  2651.                     case insensitive search, type Y.
  2652.                      Note:    Case sensitive or case insensitive searches
  2653.                               may only be done in a character or a single
  2654.                               key field.
  2655.  
  2656.                     A case sensitive search means that if the data you are
  2657.                     searching for is written in all upper case letters, you
  2658.                     should use upper case letters in your search string. 
  2659.                     Basically, you enter the search string using the same
  2660.                     case (lower, upper, or mixed) as the data was
  2661.                     originally entered into the form.  Thus, if the data is
  2662.                     in lower case and the search string is in upper case,
  2663.                     the search string will not be found.
  2664.  
  2665.                     A case insensitive search means that the search will be
  2666.                     conducted using the letters that you have entered,
  2667.  
  2668.           
  2669.                                                                     Page 41
  2670.  
  2671.                     ignoring whether it is in upper or lower case.
  2672.  
  2673.                     However, if you have created an index in which you
  2674.                     ignored the case and you use this index for doing your
  2675.                     search, then the search will be case insensitive.
  2676.  
  2677.                 6.  If you are doing a search in a field that is indexed,
  2678.                     you have the option of using the index to perform the
  2679.                     search.  You will see "(I)ndexed or (S)equential
  2680.                     search?"  Enter either I or S depending on the type of
  2681.                     search you want.
  2682.  
  2683.                     Using the index to perform the search will be much
  2684.                     faster.  Remember that an index is a table of record
  2685.                     numbers arranged in sorted order to permit rapid access
  2686.                     to a specific record.  Therefore, when you use an index
  2687.                     to do your search, the search will not proceed in the
  2688.                     order in which the record appears in the database.
  2689.  
  2690.                      Note:    If you decide to do a sequential search
  2691.                               instead of an indexed search, you will be
  2692.                               allowed to choose whether you want to ignore
  2693.                               the case while doing the search.
  2694.  
  2695.                A search will be made until the first field is found that
  2696.                contains your search string.  For example, using a search
  2697.                string of "smi" in the surname field will find all the
  2698.                surnames that start with "smi", such as smith, smitty or
  2699.                smithers.  If you want an exact search, enter a space after
  2700.                the string set.
  2701.  
  2702.                When the first field that contains your substring is found,
  2703.                PRO-dVelBase moves this record to the top of your screen and
  2704.                your cursor will be on this field if in table mode.  On the
  2705.                message line, the third line from the bottom of the screen,
  2706.                you will see the prompt, "Continue? (Y/N)".  Press Y if you
  2707.                want to continue.  Press N if you do not want to continue.
  2708.  
  2709.                For an exact search:
  2710.                 1.  Type your search string.
  2711.                 2.  Type a space after your search string.  If you do not
  2712.                     type a space at the end, then the search will bring up
  2713.                     all the occurrences of the search string.  For example:
  2714.  
  2715.                          Smith(SPACE) will find Smith
  2716.                          Smith(without a space) will find Smithers,
  2717.                          Smithen, Smith
  2718.  
  2719.                 3.  Press ENTER.  Your cursor will highlight the record
  2720.                     that contains your search string.
  2721.  
  2722.                 Note:    If a null string is used, then the search will
  2723.                          bring up the entire database, one record at a
  2724.                          time.
  2725.  
  2726.           
  2727.                                                                     Page 42
  2728.  
  2729.                Search & Replace
  2730.                ----------------
  2731.                This command is a submenu command of the search menu.  It is
  2732.                similar to the search command but it also allows you to
  2733.                replace all the search strings with a value derived from a
  2734.                replace formula.
  2735.  
  2736.                Perform your Search & Replace command as follows.
  2737.                 1.  Press F8 to bring up the search menu.
  2738.                 2.  Select Search & Replace.  The fields of the database
  2739.                     will be listed in a window.
  2740.                 3.  Select the field that you would like to do the search
  2741.                     on.
  2742.                 4.  Enter the search string, that is, the value you would
  2743.                     like to search for.  If the search string is a null
  2744.                     string (no value) then this becomes a global operation
  2745.                     and all of the records are changed. Press ENTER.
  2746.                 5.  Next you will see the following prompt for character
  2747.                     fields, "Ignore case? (Y/N)".  For a case sensitive
  2748.                     search, type N.  For a case insensitive search, type Y.
  2749.                 6.  Enter the replace formula, that is, the value you would
  2750.                     like to see in place of your search string.  The
  2751.                     formula must evaluate out to the same type as the
  2752.                     search string.  The replace formula has a maximum
  2753.                     length of 255 characters and pressing CTRL-Z allows it
  2754.                     to be edited in a window.  Press ENTER.
  2755.                 7.  As a precaution, you will also be asked, "Verify each
  2756.                     change? (Y/N)".  Press Y and you may verify each
  2757.                     change.  The search will stop at each spot where a
  2758.                     record is found and it will ask whether you want to
  2759.                     replace that field or not.  Also the new value to
  2760.                     replace the current field value will be displayed as a
  2761.                     confirmation.  If you answer NO to the above question,
  2762.                     all found records will be updated without confirmation. 
  2763.                     You will not be asked whether you want to replace that
  2764.                     field or not.
  2765.  
  2766.                      Note:    When replacing an exact word, include a space
  2767.                               as part of the search string.  Otherwise, the
  2768.                               replace string will replace any occurrence of
  2769.                               your search string.
  2770.  
  2771.                e.g. To perform a global update on a COST field, increasing
  2772.                     each field by 10%, the following may be done.  Use a
  2773.                     null string as the search string in the COST field and
  2774.                     the replace formula is COST * 1.1.
  2775.  
  2776.                Search & Delete
  2777.                ---------------
  2778.                To search and delete a record:
  2779.                 1.  Press F8 to bring up the search menu.
  2780.                 2.  Select Search & Delete.  The fields of the database
  2781.                     will be listed in a window.
  2782.                 3.  Select the field that you would like to do the search
  2783.  
  2784.           
  2785.                                                                     Page 43
  2786.  
  2787.                     on.
  2788.                 4.  Enter the search string, that is, the value you would
  2789.                     like to search for.  Press ENTER.
  2790.                 5.  Next you will see the following prompt, "Ignore case?
  2791.                     (Y/N)".  For a case sensitive search, type N.  For a
  2792.                     case insensitive search, type Y.
  2793.                 6.  As a precaution, you will also be asked, "Verify each
  2794.                     change? (Y/N)".  Answer YES and you may verify each
  2795.                     change.  The search will stop at each spot where a
  2796.                     record is found and it will ask whether you want to
  2797.                     delete that record or not.  If you answer NO to the
  2798.                     above question, the entire database will be updated
  2799.                     globally.  You will not be asked whether you want to
  2800.                     delete that record or not.
  2801.  
  2802.                 Note:    When searching for an exact word, press the space
  2803.                          bar to include a space as part of the search
  2804.                          string.  Otherwise, the search find all
  2805.                          occurrences of your search string.
  2806.  
  2807.                When you delete a record, you are simply marking it as being
  2808.                deleted.  Records that you have marked for deletion will
  2809.                have the word "Del" in the right lower corner when the
  2810.                cursor is over them and a diamond will appear beside the
  2811.                record number on the left side if in table view.  In order
  2812.                to remove deleted records from the database, the database
  2813.                packing function must be performed.  However, once you have
  2814.                packed your database you will not be able to undelete a
  2815.                deleted record.
  2816.  
  2817.                Search & Undelete
  2818.                -----------------
  2819.                This function works in a similar way as the Search & Delete. 
  2820.                The Search and Undelete function simply unmarks a record
  2821.                that was previously marked for deletion.  This command will
  2822.                only work if you have not yet packed the database containing
  2823.                the deleted records.
  2824.  
  2825.           E. Form/Unselect
  2826.           ================
  2827.  
  2828.           Form/Unselect is the opposite of Form/Select.  Form/Unselect
  2829.           simply removes a given form from the work area.  Also all
  2830.           associated objects in the work area are also unselected.
  2831.  
  2832.           F. Form/Delete
  2833.           ==============
  2834.  
  2835.           This submenu command is used to delete forms.  When it is
  2836.           selected, you will be asked if you would also want to delete all
  2837.           the associated data files with the form and all the associated
  2838.           files in the catalog.  The associated files in the catalog
  2839.           include any queries, reports, labels, mails, appends and posts
  2840.           that were created with the currently selected form.  The default
  2841.  
  2842.           
  2843.                                                                     Page 44
  2844.  
  2845.           to these questions is NO.  Deleting the form only will only
  2846.           delete the .SCN, .FLD and .CAT files.  Deleting the data files
  2847.           will delete the .DBF and .DBT files.  Please be careful if you
  2848.           select this because there may be alot of data present in these
  2849.           files that you may not want deleted.
  2850.  
  2851.  
  2852.  
  2853.  
  2854.  
  2855.  
  2856.  
  2857.  
  2858.  
  2859.  
  2860.  
  2861.  
  2862.  
  2863.  
  2864.  
  2865.  
  2866.  
  2867.  
  2868.  
  2869.  
  2870.  
  2871.  
  2872.  
  2873.  
  2874.  
  2875.  
  2876.  
  2877.  
  2878.  
  2879.  
  2880.  
  2881.  
  2882.  
  2883.  
  2884.  
  2885.  
  2886.  
  2887.  
  2888.  
  2889.  
  2890.  
  2891.  
  2892.  
  2893.  
  2894.  
  2895.  
  2896.  
  2897.  
  2898.  
  2899.  
  2900.           
  2901.                                                                     Page 45
  2902.  
  2903.  
  2904.                                   Chapter 3:  Query
  2905.                                   =================
  2906.  
  2907.           A query is a request by a user for information from the database. 
  2908.           This request lays out the limits, conditions or criteria that
  2909.           needs to be met in order for data to be found and displayed. 
  2910.           Therefore, the query acts as a filter.  It will filter out as
  2911.           well as sort the appropriate records for subsequent operations. 
  2912.           These operations may include the report generation, mail merge,
  2913.           label generation, append and post.
  2914.  
  2915.           There are eight submenu commands under the query menu.  They
  2916.           include:  Select, Execute, Create, Modify, Unselect, Delete, Add
  2917.           to Cat. and Remove from Cat.
  2918.  
  2919.           Whenever a query is created, it is specific to a given form. 
  2920.           Therefore, the form must be selected before a query may be
  2921.           created.  Like the form, a query must be created and saved before
  2922.           it may be selected and executed.
  2923.  
  2924.            Note:    You only create your query once and save it. 
  2925.                     Thereafter, you just need to select it whenever you
  2926.                     want to execute it.  You may alter the query after it
  2927.                     has been saved.  This is done using the Query/Modify
  2928.                     command.  
  2929.  
  2930.           A. Query/Create
  2931.           ===============
  2932.  
  2933.           This command is used to create a query.  All queries are specific
  2934.           to a given form.  Therefore, before you may create your query, if
  2935.           you have not already done so, select the form that your query
  2936.           will be associated with.
  2937.  
  2938.           To Create a Query:
  2939.            1.  Select Query/Create.
  2940.            2.  Give this query a name.  The name must be a dBASE name and
  2941.                it must follow dBASE conventions.  Please refer to Appendix
  2942.                A:  dBASE Naming Conventions.  Try to make the name as
  2943.                descriptive as possible.  For example, a query of all the
  2944.                names between the letters A to M might be called NAME_A_M.
  2945.            3.  Press ENTER.  You will see a screen with all the field names
  2946.                across the top.  The field names are written in the
  2947.                following format:  database file name -> field name.  This
  2948.                is done because for any given form, there may be fields that
  2949.                come from more than one database file.  This is usually the
  2950.                case if your form is a multi-file form and consists of
  2951.                databases files that are related.
  2952.  
  2953.           The first line under the field names is the line that indicates
  2954.           the numerical view order of selected fields.  The next line
  2955.           indicates the numerical sort order of the fields.
  2956.  
  2957.  
  2958.           
  2959.                                                                     Page 46
  2960.  
  2961.           The following tables indicate the active keys on the query
  2962.           editor.
  2963.  
  2964.           =================================================================
  2965.           Active Key          Action
  2966.           -----------------------------------------------------------------
  2967.           E or ENTER          moves cursor to edit line.
  2968.           RIGHT               moves the cursor bar right one cell.
  2969.           LEFT                moves the cursor bar left one cell.
  2970.           S                   used for sort order.
  2971.           V                   used for view order.
  2972.           UP                  moves the cursor bar up one cell.
  2973.           DOWN                moves the cursor bar down one cell.
  2974.           HOME                moves the cursor bar to the last field.
  2975.           END                 moves the cursor bar to the first field.
  2976.           ESC                 abandons the query operation.
  2977.           F9                  displays a list of the field if on edit line.
  2978.           ALT-F9              displays a list of the functions if on edit
  2979.                               line.
  2980.           CTRL-F9             displays a list of the operators if on edit
  2981.                               line.
  2982.           F1                  context sensitive help.
  2983.           F10                 saves the query.
  2984.           ================================================================
  2985.  
  2986.           Query Editor
  2987.           ------------
  2988.  
  2989.           The query method used by PRO-dVelBase is a query-by-example.
  2990.  
  2991.           The table consists of 10 rows going down and the number of
  2992.           columns is equal to the number of fields in the form.  We will
  2993.           refer to the area in which you enter the conditions as cells.
  2994.  
  2995.           In this table, the query is created by placing conditions that
  2996.           must be met before a record will be filtered.  Conditions are
  2997.           placed in each cell and all these conditions must be evaluated as
  2998.           being TRUE before the transaction will be included in the query. 
  2999.           A condition consists of a relational operator and an expression.
  3000.  
  3001.           Here are the relational operators that will be accepted:
  3002.  
  3003.           =================================================================
  3004.           Symbol         Meaning
  3005.           -----------------------------------------------------------------
  3006.           =              Equal to
  3007.           <> or #        Not Equal to
  3008.           <              Less Than
  3009.           >              Greater Than
  3010.           <=             Less Than or Equal To
  3011.           >=             Greater Than or Equal To
  3012.           $              Contains
  3013.           =================================================================
  3014.  
  3015.  
  3016.           
  3017.                                                                     Page 47
  3018.  
  3019.           An expression is a string that contains a sequence of operators,
  3020.           functions, field names and constants.  All expressions evaluate
  3021.           to a specific type, such as numeric, character, date or logical. 
  3022.           Therefore, field names and constants used in an expression must
  3023.           be of the same type.  For example, you may add a numeric field
  3024.           only to a numeric field.  To further clarify this point, the
  3025.           condition to query a surname field must contain an expression
  3026.           that returns a character type.  An expression that returns a
  3027.           numeric type is not acceptable.
  3028.  
  3029.           Single key and time fields are considered to be equivalent to the
  3030.           character field type.
  3031.  
  3032.           It is not possible to query a memo field.  Any query conditions
  3033.           placed in a memo field will simply be ignored.  
  3034.  
  3035.           Multiple AND conditions may be placed on the query table.  All
  3036.           conditions are on the same row.  For example, if you want to
  3037.           search for all the Smiths living in Washington, then in the
  3038.           SURNAME cell, the condition would be ="Smith".  In the CITY cell,
  3039.           the condition would be ="Washington" and these 2 conditions would
  3040.           be on the same line.  This would retrieve a record or records
  3041.           that have the surname Smith and the city name Washington.
  3042.  
  3043.           Multiple OR conditions are placed going downwards.  For example,
  3044.           the search of all the records in which the surname is equal to
  3045.           Smith or Jones.  The conditions would be placed in the SURNAME
  3046.           cell with the condition ="Smith" on line 1 and ="Jones" on line
  3047.           2.  For characters, the search is case sensitive.
  3048.  
  3049.           To perform a multi-condition AND search on a given field, a "&"
  3050.           is placed between conditions and the conditions are placed in a
  3051.           single cell.  For example, to find all the surnames greater than
  3052.           Jones and less than Smith, the following conditions would be
  3053.           entered into the SURNAME cell:  >"Jones" & <"Smith".  The "&"
  3054.           character is reserved for this purpose and cannot appear in the
  3055.           condition for any other reason.
  3056.  
  3057.           If a condition does not have anything before the operator,
  3058.           PRO-dVelBase assumes that the field name of the current cell is
  3059.           to be used in the expression.  If anything is present before the
  3060.           operator, then PRO-dVelBase will evaluate the condition as a
  3061.           complete expression.  For example, if the expression,
  3062.           SUBSTR(SURNAME,2,2) = "on", was used then all surnames whose
  3063.           second and third letters have "on" (such as Jones, Bones, Bonn)
  3064.           will be found.  This expression may be placed in any cell and
  3065.           evaluated directly because the expression, SUBSTR(SURNAME,2,2),
  3066.           occurs before the equal operator.
  3067.  
  3068.           With this query-by-example method, very complex queries may be
  3069.           created and saved.  Upon execution of the query, all the records
  3070.           that satisfy these conditions will appear in table view.
  3071.  
  3072.            Note:    For a form that has a one-to-many relationship, the
  3073.  
  3074.           
  3075.                                                                     Page 48
  3076.  
  3077.                     query will only be applied to the first record of the
  3078.                     one-to-many relationship.  In order to query all the
  3079.                     records of a one-to-many relationship, another form
  3080.                     must be used that reverses the link so that a
  3081.                     many-to-one relationship exists.
  3082.  
  3083.           To Select Fields for Viewing
  3084.           ----------------------------
  3085.  
  3086.           The following procedure allows you to select the fields that you
  3087.           want to view and to alter the order in which you view these
  3088.           fields.
  3089.            1.  Press V.  Two windows are displayed.  The left window
  3090.                displays all the fields present in the database.  The right
  3091.                window is initially empty.
  3092.            2.  Place the cursor, which is in the left window, on the first
  3093.                field that you want view.
  3094.            3.  Press ENTER.  A check mark will appear beside the field name
  3095.                and this field name will be displayed in the right window.
  3096.            4.  Place the cursor over the next field that you want.
  3097.            5.  Press ENTER.  A check mark will appear beside this field. 
  3098.                Also, this second field will be displayed in the right
  3099.                window.
  3100.            6.  Continue this process until you have selected all of the
  3101.                fields that you want to be seen in table view.
  3102.            7.  To alter the order in which the fields appear in query view,
  3103.                use the RIGHTKEY to move the cursor to the right window. 
  3104.                Locate the field you would like to move and place the cursor
  3105.                over this field.  Press ENTER to lock the field onto the
  3106.                cursor.  Use the UP or DOWN key to move the field to the
  3107.                position that you would like it to be viewed in.  Press
  3108.                ENTER again to unlock and place your field into position.
  3109.            8.  If you have selected a field that you want to view in the
  3110.                query and then decide that you do not want to view this
  3111.                field, you may remove it from the view.  Place the cursor in
  3112.                the left window over the field you want removed from the
  3113.                view.  Press ENTER and the field will be removed from the
  3114.                view.
  3115.            9.  Press F10 to save the view or ESC to abandon.
  3116.  
  3117.           Once you save your changes, you will return to the previous
  3118.           screen.  Note that the first line indicates the order that you
  3119.           have chosen for the fields to appear.  This order is indicated by
  3120.           a number under the selected field name.  Note that all the field
  3121.           names are shown across the top of the screen but not all field
  3122.           names will have a number under them.  Only those that you have
  3123.           selected to be viewed will have a number to indicate the view
  3124.           order that you have assigned to it.
  3125.  
  3126.           If no fields are assigned to a query view, then PRO-dVelBase will
  3127.           display all the fields in the form.
  3128.  
  3129.  
  3130.  
  3131.  
  3132.           
  3133.                                                                     Page 49
  3134.  
  3135.  
  3136.           To Sort the Fields
  3137.           ------------------
  3138.  
  3139.           Proceed as follows:
  3140.            1.  Press S.  Two windows will open.  The left window will
  3141.                display the field names that you may choose from.  The right
  3142.                window will display the fields that you have chosen.
  3143.            2.  Place the cursor over the field that you would like to sort
  3144.                by.
  3145.            3.  Press ENTER.  A check mark will appear beside the field name
  3146.                and this field name will be displayed in the right window.
  3147.            4.  Place the cursor over the next field that you want.
  3148.            5.  Press ENTER.  A check mark will appear beside this field. 
  3149.                Also, this second field will be displayed in the right
  3150.                window.
  3151.            6.  Continue this process until you have selected all of the
  3152.                fields that you want to be sorted by.
  3153.            7.  If you want a sort to be case insensitive, press the SPACE
  3154.                bar instead.  This will place a double arrow beside the
  3155.                field name instead of a check mark.
  3156.            8.  To remove a field from the sort, place the cursor over the
  3157.                field name in the left window and press ENTER.
  3158.            9.  To alter the order in which the fields are sorted by, use
  3159.                the RIGHTKEY to move the cursor to the right window.  Locate
  3160.                the field you would like to move and place the cursor over
  3161.                this field.  Press ENTER to lock the field onto the cursor. 
  3162.                Use the UP or DOWN key to move the field to the position
  3163.                that you would like it to be viewed in.  Press ENTER again
  3164.                to unlock and place your field into position.
  3165.  
  3166.           Upon saving your changes, you will return to the previous screen. 
  3167.           The second line indicates the order that you have chosen for the
  3168.           fields to be sorted.
  3169.  
  3170.            Note:    PRO-dVelBase will only allow you to sort up to 10
  3171.                     fields and their combined lengths cannot exceed 100.
  3172.  
  3173.           The sort order will also be correct even if the fields have
  3174.           different field types.  The only field that cannot be sorted is a
  3175.           memo field.
  3176.  
  3177.           A sort does not physically rearrange the records in a database
  3178.           file.  An index is created and the records will appear to be
  3179.           sorted when they are printed.
  3180.  
  3181.           Saving The Query
  3182.           ----------------
  3183.  
  3184.           Proceed as follows:
  3185.            1.  Review your work on the screen.  If you are happy with the
  3186.                view order, sort order and conditions that you have assigned
  3187.                for the query, press F10.
  3188.            2.  Give the query file a description.  The maximum field length
  3189.  
  3190.           
  3191.                                                                     Page 50
  3192.  
  3193.                is 40 characters.  Try to make this file description as
  3194.                descriptive a possible.  For example, if this query was a
  3195.                query of all the Smiths living in Los Angeles, simply call
  3196.                this file description, "All Smiths living in LA."
  3197.            3.  Press ENTER.  The query is saved as a file with a .QCF
  3198.                extension (meaning query condition file).
  3199.  
  3200.           When you have created a query, you may select it and execute it. 
  3201.           Upon execution, all the records that are evaluated as TRUE, will
  3202.           be displayed in a table view.
  3203.  
  3204.           B. Query/Modify
  3205.           ===============
  3206.  
  3207.           The modify selection on the query menu will allow you to modify
  3208.           the selected query.  The rules for modification are the same as
  3209.           for creation.
  3210.  
  3211.           C. Query/Select
  3212.           ===============
  3213.  
  3214.           When using the Query/Select command, you are simply choosing the
  3215.           query that you want to use.
  3216.  
  3217.           Each query is associated with a specific form.  Therefore,
  3218.           PRO-dVelBase will not grant you access to the Query/Select and
  3219.           Query/Create commands unless you select the form first.  If no
  3220.           form is selected, all of the Query menu selections are turned
  3221.           off.  Once you select your form, PRO-dVelBase only turns on the
  3222.           Select and the Create submenu commands.  Then, when you select
  3223.           your query, PRO-dVelBase turns on the other Query submenu
  3224.           commands.  However, you may only select a query that you have
  3225.           previously created and saved.
  3226.  
  3227.           Query selection places the query into the work area for use. 
  3228.           Error checking occurs also on selection and if an error occurs
  3229.           the name will be put in lower case and a file description of
  3230.           UNEXECUTABLE and/or UNMODIFIABLE FILE will be given.  If the file
  3231.           name is present in the catalog but the file does not actually
  3232.           exist then the message "FILE DOES NOT EXIST" will appear.  This
  3233.           type of error may occur if a file is deleted from the DOS level
  3234.           instead of using PRO-dVelBase to delete it.
  3235.  
  3236.           To Select a Query
  3237.           -----------------
  3238.  
  3239.            1.  Select Query/Select.  At this point a window will open and a
  3240.                directory of the existing queries will be displayed.  Note
  3241.                that the description is also shown.
  3242.            2.  Place cursor bar over the query that you want to use.
  3243.            3.  Press ENTER.
  3244.  
  3245.           At this point, you have chosen the query that you want to use. 
  3246.           The name and description of the query that you have chosen will
  3247.  
  3248.           
  3249.                                                                     Page 51
  3250.  
  3251.           appear in the work area.
  3252.  
  3253.           D. Query/Execute
  3254.           ================
  3255.  
  3256.           Upon execution of a query, PRO-dVelBase will display in table
  3257.           view all the records that are evaluated as TRUE.
  3258.  
  3259.           The method that PRO-dVelBase uses to query a form is that it
  3260.           evaluates each record and if it is found to be TRUE, its record
  3261.           number is stored in a separate index file with a .QIF extension
  3262.           (meaning query index file).  If this was the first time this
  3263.           query was executed or if the databases on the selected form were
  3264.           updated, then PRO-dVelBase will query the entire database.  If
  3265.           the query had already been executed and no updates made on the
  3266.           databases, then you will be asked if you want to re-query the
  3267.           database.  The querying process may be paused by pressing SPACE
  3268.           or aborted by pressing ESC.
  3269.  
  3270.           The active keys in the query view are exactly the same as those
  3271.           in the table view except appends are not allowed.
  3272.  
  3273.           You may also edit any of these records by pressing E.  This
  3274.           allows you to enter the Query edit mode.  Editing records at this
  3275.           point will not update the index therefore the record will still
  3276.           be displayed even though it may evaluate to be FALSE.  A
  3277.           re-querying of the database is necessary.  Pressing Esc will take
  3278.           you back to the main menu.
  3279.  
  3280.           In a one-to-many relationship, all the fields in the first
  3281.           linkage are present.  Subsequent records in the relationship will
  3282.           not display the values present in the parent database file and
  3283.           the record number is displayed with a ditto (") to indicate that
  3284.           it is the same as the first linkage.  It is not possible to edit
  3285.           the blank cells in a one-to-many relationship.
  3286.  
  3287.           E. Query/Unselect
  3288.           =================
  3289.  
  3290.           The work area will display the name and file description of the
  3291.           query that is currently selected.  Queries act as filters to
  3292.           select the appropriate records for subsequent operations.  If you
  3293.           do not want your records to be filtered out, then you need to use
  3294.           the Query/Unselect command to remove the active query.  When you
  3295.           use Query/Unselect, PRO-dVelBase will resume using all the
  3296.           records in the form for all subsequent operations.
  3297.  
  3298.           To clarify this point, suppose you created a query named
  3299.           NAME_B_M.  This query is described as "Customer with Surnames
  3300.           between B and M".  If you have selected this query, the query
  3301.           name (NAME_B_M) and the file description (Customer with Surnames
  3302.           between B and M) will be displayed in the work area.  If you
  3303.           decide to print some labels, only the records of the customers
  3304.           whose surname fall between B and M will be printed.  PRO-dVelBase
  3305.  
  3306.           
  3307.                                                                     Page 52
  3308.  
  3309.           has used the query to filter out the records that you want to
  3310.           generate labels for.  If you wanted labels for all the customers,
  3311.           then you would simply use the Query/Unselect command to remove
  3312.           the filter.
  3313.  
  3314.           F. Query/Delete
  3315.           ===============
  3316.  
  3317.           This command may only be accessed if you have selected a query. 
  3318.           PRO-dVelBase will display this query in the work area.  If you
  3319.           select the Query/Delete command, the query will be deleted after
  3320.           a confirmatory message.
  3321.  
  3322.           G. Query/Add to Cat.
  3323.           ====================
  3324.  
  3325.           When a query is created, it is automatically added to a catalog. 
  3326.           This catalog is the file that contains the names of related
  3327.           operational files, such as query, report, mail, label, append and
  3328.           post, for a selected form.  There is one catalog for each form. 
  3329.           All queries that were created under a particular form would be
  3330.           listed in the catalog for that form.  This would keep the
  3331.           operational files of one form separate from the operational files
  3332.           of another form.
  3333.  
  3334.           To Add a Query to a Catalog
  3335.           ---------------------------
  3336.  
  3337.           Proceed as follows:
  3338.            1.  Select Query/Add to Cat.  A window will open to display a
  3339.                list of all the queries that are present on the current data
  3340.                directory.
  3341.            2.  Place your cursor over the query you would like to add.
  3342.            3.  Press ENTER.  A window will open to allow you to enter a
  3343.                file description.
  3344.            4.  Enter a brief file description.  PRO-dVelBase will permit
  3345.                you to enter up to 40 characters for your file description.
  3346.            5.  Press ENTER.
  3347.  
  3348.           You have now added your query to the catalog.  If you select
  3349.           Query/Select, you will see all the queries that are in the
  3350.           catalog.
  3351.  
  3352.           H. Query/Remove from Cat.
  3353.           =========================
  3354.  
  3355.           This command is used to remove a specific query from the catalog. 
  3356.           When you remove the query from the catalog, you are not deleting
  3357.           it from your hard disk.  Rather, you are simply removing from it
  3358.           from the catalog so that it will not be displayed or used.
  3359.  
  3360.  
  3361.  
  3362.  
  3363.  
  3364.           
  3365.                                                                     Page 53
  3366.  
  3367.  
  3368.           To Remove a Query from the catalog
  3369.           ----------------------------------
  3370.  
  3371.           Proceed as follows:
  3372.            1.  Select Query/Remove from Cat.  You will see the prompt, "Are
  3373.                you sure? (Y/N)"
  3374.            2.  Press Y if you are sure that you want to remove it. 
  3375.                Otherwise, press N.  If you pressed Y, you would have
  3376.                removed your query from the catalog.
  3377.  
  3378.  
  3379.  
  3380.  
  3381.  
  3382.  
  3383.  
  3384.  
  3385.  
  3386.  
  3387.  
  3388.  
  3389.  
  3390.  
  3391.  
  3392.  
  3393.  
  3394.  
  3395.  
  3396.  
  3397.  
  3398.  
  3399.  
  3400.  
  3401.  
  3402.  
  3403.  
  3404.  
  3405.  
  3406.  
  3407.  
  3408.  
  3409.  
  3410.  
  3411.  
  3412.  
  3413.  
  3414.  
  3415.  
  3416.  
  3417.  
  3418.  
  3419.  
  3420.  
  3421.  
  3422.           
  3423.                                                                     Page 54
  3424.  
  3425.  
  3426.                                   Chapter 4:  Report
  3427.                                   ==================
  3428.  
  3429.           A report may be defined as a document produced from all of the
  3430.           records or a subset of the records from a selected form.  If a
  3431.           query filter is selected, this will limit and will also sort the
  3432.           records to be printed.
  3433.  
  3434.           There are eight submenu commands under the report menu.  They
  3435.           include:  Select, Execute, Create, Modify, Unselect, Delete, Add
  3436.           to Cat. and Remove from Cat.
  3437.  
  3438.           A. Report/Create
  3439.           ================
  3440.  
  3441.           This command is used to create a report.
  3442.  
  3443.           To create a report:
  3444.            1.  Select Report/Create.
  3445.            2.  Give this report a unique name.  This name must follow the
  3446.                dBASE naming convention as it will be a file name.  If you
  3447.                are not familiar with these conventions, refer to Appendix
  3448.                A:  dBASE Naming Conventions.
  3449.  
  3450.           The Report Definitions screen will now appear.  This screen
  3451.           consist of a series of questions regarding the report as a whole.
  3452.  
  3453.           Number of columns:
  3454.                The first question asked is number of columns.  On a
  3455.                standard printer this will generally be 80.  If you have a
  3456.                wide carriage printer or if you are printing in condensed
  3457.                mode, you may increase the number of columns in the report. 
  3458.                The range for the number of columns is between 40 and 255.
  3459.  
  3460.                ==> The default is 80.
  3461.  
  3462.           Number of rows:
  3463.                The next question is number of rows.  For a standard
  3464.                printer, this will be 66.  The range for the number of rows
  3465.                is between 20 and 100.
  3466.  
  3467.                ==> The default is 66.
  3468.  
  3469.           Maximum number of records per page:
  3470.                You may limit the number of records printed per page of the
  3471.                report.  On certain preprinted forms, only a certain number
  3472.                of records may be printed per form.  The range for this is
  3473.                between 0 and 99.  If 0 is selected, then PRO-dVelBase will
  3474.                print out as many records as will fit on the page.
  3475.  
  3476.                ==> The default is 0.
  3477.  
  3478.  
  3479.  
  3480.           
  3481.                                                                     Page 55
  3482.  
  3483.  
  3484.           Continuous paper? (Y/N)
  3485.                If you will be using continuous paper, answer YES.  If NO,
  3486.                you will be prompted to insert a new piece of paper after
  3487.                each page is printed.
  3488.  
  3489.                ==> The default is YES.
  3490.  
  3491.           Print blank records? (Y/N)
  3492.                If there are blank records in the database file, should
  3493.                these be printed?  Generally you will not want blank records
  3494.                printed.
  3495.  
  3496.                ==> The default is NO.
  3497.  
  3498.           Print deleted records? (Y/N)
  3499.                If records have been marked as deleted, should they be
  3500.                printed?  Generally you will not want deleted records to be
  3501.                printed.
  3502.  
  3503.                ==> The default is NO.
  3504.  
  3505.           New page after each group? (Y/N)
  3506.                PRO-dVelBase is able to sort the database information by
  3507.                groupings.  If you would like each grouping to be on a page
  3508.                of its own, then answer YES.
  3509.  
  3510.                ==> The default is NO.
  3511.  
  3512.           Prevent isolated group header? (Y/N)
  3513.                Group headers are printed at the beginning of each new
  3514.                group.  If you want to prevent a group header from appearing
  3515.                by itself without its associated table, then answer YES to
  3516.                this question.
  3517.  
  3518.                ==> The default is YES.
  3519.  
  3520.           Name of Printer File? (A-Z)
  3521.                Printer files are created when a printer is defined.  These
  3522.                are given the names A to Z.  PRO-dVelBase automatically
  3523.                assigns a .PRT extension to them.  Select the appropriate
  3524.                printer that you want this report printed under.  Press F9
  3525.                to display all the printer files that have already been
  3526.                created.
  3527.  
  3528.                ==> The default is A.
  3529.  
  3530.           Printer Port  (A) LPT1 (B) LPT2 (C) LPT3 (D) COM1 (E) COM2:
  3531.                PRO-dVelBase allows printouts to occur through any of 3
  3532.                parallel ports or 2 serial ports.  They are numbered as
  3533.                LPT1, LPT2, LPT3, COM1, COM2 respectively.  Generally,
  3534.                output will be through LPT1 but please check the
  3535.                configuration of your computer.  You may also allow
  3536.                different reports, labels or letters to be printed through
  3537.  
  3538.           
  3539.                                                                     Page 56
  3540.  
  3541.                different ports.  For example, an invoice report may be
  3542.                printed out through a printer connected to LPT1 while a
  3543.                label printed out through a printer connected to LPT2.
  3544.  
  3545.                ==> The default is (A) LPT1.
  3546.  
  3547.           If a serial port (COM1 or COM2) is selected, the next series of
  3548.           questions will appear.
  3549.  
  3550.           Baud rate (A) 300 (B) 600 (C) 1200 (D) 2400 (E) 4800 (F) 9600:
  3551.                This indicates how fast the output through the serial port
  3552.                will be.  The selections are 300, 600, 1200, 2400, 4800,
  3553.                9600.  Check your printer manual for these rates.
  3554.  
  3555.                ==> The default is (F) 9600.
  3556.  
  3557.           Parity (A) Odd (B) None (C) Even:
  3558.  
  3559.                ==> The default is (B) None.
  3560.  
  3561.           Stop bits (1-2): Stop bits may be 2 or 1.
  3562.  
  3563.                ==> The default is 1.
  3564.  
  3565.           Data bits (7-8): Data bits may be 7 or 8.
  3566.  
  3567.                ==> The default is 8.
  3568.  
  3569.           After you have answered the report definition questions, you will
  3570.           see the report editor.  If you want PRO-dVelBase to bring up the
  3571.           questions again, you may press ESC.  This will take you back to
  3572.           the report definitions screen.
  3573.  
  3574.           Report Editor
  3575.           -------------
  3576.  
  3577.           The report editor is a full screen editor and operates through
  3578.           the "band" method.  There are 4 different types of band:  report
  3579.           band, page band, 5 group bands and a table band.  The bands are
  3580.           laid out symmetrically so that there are an equal number of bands
  3581.           on the top as well as the bottom.  The top group of bands are
  3582.           called the header bands.  The bottom group of bands are called
  3583.           the footer bands.
  3584.  
  3585.  
  3586.  
  3587.  
  3588.  
  3589.  
  3590.  
  3591.  
  3592.  
  3593.  
  3594.  
  3595.  
  3596.           
  3597.                                                                     Page 57
  3598.  
  3599.  
  3600.           The following table shows how each band works.
  3601.  
  3602.           =================================================================
  3603.           Contents Within          How it Will be Printed
  3604.           -----------------------------------------------------------------
  3605.           report header band       printed once only at the beginning of
  3606.                                    the report.
  3607.           report footer band       printed once only at the end of the
  3608.                                    report.
  3609.           page header band         printed at the top of each page.
  3610.           page footer band         printed at the bottom of each page.
  3611.           group header band        printed at the beginning of each group.
  3612.           group footer band        printed at the bottom of each group.
  3613.           table band               printed in the body of the report
  3614.                                    itself.
  3615.           =================================================================
  3616.  
  3617.           Note:     The contents of each band may be text and/or fields. 
  3618.                     Text information is printed exactly as is while fields
  3619.                     are printed according to their value at the current
  3620.                     record.
  3621.  
  3622.           The bands are initially set with one space in the report bands,
  3623.           page bands and the table band.  The group bands are closed.
  3624.  
  3625.           Bands may be opened or additional spaces inserted by pressing
  3626.           ENTER while in the INSERT mode.  The maximum number of spaces
  3627.           allowed in the bands is determined by the number of rows defined
  3628.           per page.
  3629.  
  3630.           Bands may be closed by pressing CTRL-Y while the cursor is in the
  3631.           band and removing the lines.
  3632.  
  3633.           Field Placement
  3634.           ---------------
  3635.  
  3636.           There are 3 different kinds of fields that may be placed on
  3637.           reports.  They are database, calculated and system fields.  This
  3638.           differs from forms, which only have 2 kinds:  database and
  3639.           calculated.
  3640.            1.  Database fields are fields that come from a database file.
  3641.            2.  Calculated fields are virtual fields that are evaluated from
  3642.                formulas.
  3643.            3.  System fields will print current date, time, record number,
  3644.                record count or page.
  3645.  
  3646.           The following are steps to place a field:
  3647.            1.  Move the cursor to the spot where you would like to place
  3648.                that field.
  3649.            2.  Press F7, select the kind of field to be placed and answer
  3650.                the questions on the Report Field Definitions.  Again, as in
  3651.                the form, the types of questions will depend upon what kind
  3652.                of field is being placed and how the previous questions were
  3653.  
  3654.           
  3655.                                                                     Page 58
  3656.  
  3657.                answered.
  3658.  
  3659.           Filename->Fieldname:
  3660.                Select from the list which field to place.  If this field
  3661.                has never been defined, the list will appear automatically
  3662.                but if it has previously been defined, press F9 to view the
  3663.                fields.  This question only appears for the placement of
  3664.                database fields.
  3665.  
  3666.           Fieldname:
  3667.                This question only appears for the placement of calculated
  3668.                fields.  Calculated fields must be given a unique fieldname. 
  3669.                All calculated fields on a report are given the database
  3670.                name "CAL_R".  This allows them to be accessed in formulas
  3671.                by other calculated fields.
  3672.  
  3673.           Calculation type?
  3674.                (S)um (A)verage (H)igh (L)ow (C)ount (F)ormula:  These
  3675.                calculation types apply for calculated fields and have
  3676.                similar meaning to the corresponding types in forms.  The
  3677.                first five types are summary calculated fields.
  3678.  
  3679.                Their exact effect depends upon which band they are placed
  3680.                in.  Placing a summary field in the table band will only
  3681.                summarize the records in the table band if a one-to-many
  3682.                relationship is present.  Placing a summary field in any of
  3683.                the footer bands will summarize the records for that
  3684.                particular group, page or the entire report.  A formula
  3685.                calculated field placed in the table band evaluates each
  3686.                record separately in a one-to-many relationship.
  3687.  
  3688.                Also, calculated fields that reside in any footer band can
  3689.                only reference other fields that either reside on the same
  3690.                band or in the table band.  They cannot reference any fields
  3691.                that reside in any other footer band.  If they do,
  3692.                inaccurate values may result.
  3693.  
  3694.           Formula:
  3695.                Formulas are used for calculated fields and the effects of
  3696.                formulas differ depending upon the calculation type.  In
  3697.                Sum, Average, High and Low calculated fields, the formula is
  3698.                first evaluated for each record then the appropriate summary
  3699.                operator is performed.  In Count, the formula must evaluate
  3700.                to a logical TRUE or FALSE.  If it evaluates to TRUE then
  3701.                the record is included in the count.  In formula calculated
  3702.                fields, the evaluated results of the formula are displayed
  3703.                directly.
  3704.  
  3705.           What is the field type of the calculated field? (C)har (N)umeric
  3706.           (D)ate:
  3707.                Formula calculated fields can also have a type.  The result
  3708.                of the calculation may either be character, numeric or a
  3709.                date.
  3710.  
  3711.  
  3712.           
  3713.                                                                     Page 59
  3714.  
  3715.           Is this field printable? (Y/N)
  3716.                This question is asked for calculated fields, making it
  3717.                possible to hide them from printing.  This produces the same
  3718.                effect as hidden calculated fields in forms and they act as
  3719.                temporary variables for calculations involving other fields.
  3720.  
  3721.                ==> The default is YES.
  3722.  
  3723.           What is the length of this field?
  3724.                Calculated fields have to be given a length.  This is the
  3725.                length that will be printed.  Using calculated fields makes
  3726.                it possible to place long database fields on the report by
  3727.                decreasing the field length.  This will result in a
  3728.                truncation of the field value.
  3729.  
  3730.           How many decimal places are there?
  3731.                Numeric calculated fields require the number of decimal
  3732.                places be set.  The maximum number of decimal places is 14.
  3733.  
  3734.           Picture:
  3735.                A picture dictates the format for how the data in the field
  3736.                should be displayed.  The picture here is similar to the
  3737.                picture in forms in that special characters will be placed
  3738.                at the appropriate positions.  The only difference is that
  3739.                only the character X is used to indicate the position in the
  3740.                string.  The reason for this is that a report picture only
  3741.                acts as a template and not a mask.  For example, a phone
  3742.                number field would have the picture XXX-XXXX.
  3743.  
  3744.           Display current (D)ate, (T)ime, Record (N)umber, Record (C)ount
  3745.           or (P)age?
  3746.                This question is only asked for system fields and their
  3747.                meaning is fairly self evident.  The only one that may
  3748.                require explanation is current record count.  The record
  3749.                count refers to the number of records printed so far.  This
  3750.                type of field would be useful to number the records printed.
  3751.  
  3752.           Reset count after each group? (Y/N)
  3753.                The record count may be reset after each group.  This
  3754.                feature is useful if you want each group to be a separate
  3755.                block with its own numbering.
  3756.  
  3757.                ==> The default is NO.
  3758.  
  3759.           Reset page after each group? (Y/N)
  3760.                The page count may be reset after each group.
  3761.  
  3762.                ==> The default is NO.
  3763.  
  3764.  
  3765.  
  3766.  
  3767.  
  3768.  
  3769.  
  3770.           
  3771.                                                                     Page 60
  3772.  
  3773.  
  3774.           Date format? (A)-MMDDYY (B)-DDMMYY (C)-YYMMDD (D)-MON DD, 19YY
  3775.           (E)-MON DD/YY:
  3776.                Date fields may be printed in one of five formats.  A
  3777.                picture may be used for the first three formats to place in
  3778.                the appropriate delimiter such as a slash (/).
  3779.  
  3780.                ==> The default is A.
  3781.  
  3782.           Time format? (A)-12 hrs. (B)-24 hrs.:
  3783.                Time fields may either be printed in 12 hour or 24 hour
  3784.                format.  In 12 hour format, an AM or PM is automatically
  3785.                placed after the time.
  3786.  
  3787.           Display seconds? (Y/N)
  3788.                In time fields, the number of seconds may also be displayed.
  3789.  
  3790.                ==> The default is NO.
  3791.  
  3792.           Place at (C)urrent location or (A)djacent to previous text/field?
  3793.                Specify where you want to align your field in relation to
  3794.                other text or fields on the same line.  Placing it at the
  3795.                current location means that the field will appear on paper
  3796.                in exactly the same location as it appears on the screen in
  3797.                terms of its horizontal alignment.  Placing it adjacent to
  3798.                previous text or field, means that the field will be flushed
  3799.                immediately adjacent to any text or field on that line.
  3800.  
  3801.                ==> The default is at the current location.
  3802.  
  3803.           Justify (R)ight, (L)eft or (C)enter?
  3804.                Should the field be right, left or centre justified? 
  3805.                Character fields are normally left justified while numeric
  3806.                fields are normally right justified.
  3807.  
  3808.           Remove trailing blanks? (Y/N)
  3809.                If any trailing blanks are present, should they be removed? 
  3810.                Generally fields that are not fully filled have spaces added
  3811.                to the end to fill them.  If these spaces are not removed,
  3812.                they will be printed.
  3813.  
  3814.                ==> The default is NO.
  3815.  
  3816.           Insert commas? (Y/N)
  3817.                Numeric fields may be formatted so that they have commas at
  3818.                every third place.  This is useful for monetary values.  For
  3819.                example 1000000 would be printed as 1,000,000.
  3820.  
  3821.                ==> The default is NO.
  3822.  
  3823.  
  3824.  
  3825.  
  3826.  
  3827.  
  3828.           
  3829.                                                                     Page 61
  3830.  
  3831.  
  3832.           Preceding '$' sign? (Y/N)
  3833.                Numeric fields may have a dollar sign before them.  Again
  3834.                this would be used for monetary values.
  3835.  
  3836.                ==> The default is NO.
  3837.  
  3838.           Number of columns in memo: and Number of rows in memo:
  3839.                These two questions are asked for memo fields and allow you
  3840.                to set the number of columns and rows to be printed in a
  3841.                memo field.
  3842.  
  3843.           The following table shows the active keys on the report editor.
  3844.  
  3845.           =================================================================
  3846.           Active Key          Action
  3847.           -----------------------------------------------------------------
  3848.           ESC                 takes you to the previous screen and allows
  3849.                               you to exit this section of the program,
  3850.                               without saving.
  3851.           ARROW CURSOR KEYS   moves the cursor in the direction of the
  3852.                               arrows.
  3853.           PAGEDOWN            moves down 20 lines.
  3854.           PAGEUP              moves up 20 lines.
  3855.           HOME                moves the cursor to the extreme left.
  3856.           END                 moves the cursor to the last text or field on
  3857.                               the line.
  3858.           INSERT              toggles between overwrite and insert mode.
  3859.           DELETE              deletes the text or field on the cursor.
  3860.           BACKSPACE           deletes the previous text character.
  3861.           RETURN or ENTER     inserts a blank line when in insert mode only
  3862.                               if the bottom line of the report is empty.
  3863.           F1                  context sensitive help.
  3864.           F3                  starts and ends blocking of an area.
  3865.           F4                  inserts a printer control character (an
  3866.                               inverted question mark) that causes the next
  3867.                               character to act as a sequence of control
  3868.                               characters to the printer depending upon how
  3869.                               it was defined in the printer definition
  3870.                               file.
  3871.           F5                  copies blocked area.
  3872.           F6                  moves the blocked area.
  3873.           F7                  places and defines a database, calculated or
  3874.                               system field.
  3875.           F10                 completes and saves the report.
  3876.           CTRL-Y              clears text only from the current line.
  3877.           =================================================================
  3878.  
  3879.           One-to-many Relationships
  3880.           -------------------------
  3881.  
  3882.           The records in a one-to-many relationship are set up in the same
  3883.           way as on a form.  Simply place all the fields for one record on
  3884.           the screen, then use F3 to block them.  Move the cursor to the
  3885.  
  3886.           
  3887.                                                                     Page 62
  3888.  
  3889.           second line and press F5 to copy the block as many times as is
  3890.           required.  When finished, press F3 again to unblock the fields. 
  3891.           Remember that the maximum number of records on the many side of a
  3892.           one-to-many relationship allowed by PRO-dVelBase is 20, therefore
  3893.           only 20 lines may be copied.
  3894.  
  3895.           Group Expressions
  3896.           -----------------
  3897.  
  3898.           The report can be grouped by entering group expressions into the
  3899.           group header band.  This is done by pressing CTRL-G.  A group
  3900.           expressions window will open and up to 5 group expressions may be
  3901.           used.  The maximum length of an expression is 255.  Pressing
  3902.           CTRL-Z will allow longer expressions to be edited in a window but
  3903.           generally group expressions only consist of a field name.  Note
  3904.           that if group expressions are used, a query must be used and
  3905.           sorting must occur by these fields.  Grouping occurs whenever the
  3906.           value of the group expression changes.  The expression is
  3907.           evaluated for each record and all records that evaluate to the
  3908.           same value are grouped together when they are printed on the
  3909.           report.  This type of feature may be used, for example, in a
  3910.           report that breaks down sales by region or by salesmen.  When
  3911.           finished editing the group expressions, press F10 and the
  3912.           expressions will be placed in the appropriate group header band.
  3913.  
  3914.           Saving the Report
  3915.           -----------------
  3916.  
  3917.           Once the report is completed, press F10 and give the report a
  3918.           descriptive, meaningful file description.  An automatic check of
  3919.           the report is also done at this time.  If any errors were
  3920.           detected, you will not be able to save the report unless the
  3921.           errors are corrected.
  3922.  
  3923.           B. Report/Modify
  3924.           ================
  3925.  
  3926.           Once a report has been created, it may be modified.  Modification
  3927.           follows the same rules as creation.  The definitions for each
  3928.           field may be changed by placing the cursor over the field and
  3929.           pressing F7.  The answers to the questions may then be changed.
  3930.  
  3931.           C. Report/Select
  3932.           ================
  3933.  
  3934.           The process of selection places a previously created report into
  3935.           the work area.  If any errors are present in the report, the
  3936.           report name will be placed in lower case in the work area and the
  3937.           description will state that it is an UNEXECUTABLE and/or
  3938.           UNMODIFIABLE report.  If the file name is present in the catalog
  3939.           but the file does not actually exist then the message "FILE DOES
  3940.           NOT EXIST" will appear.  This type of error may occur if a file
  3941.           is deleted from the DOS level instead of using PRO-dVelBase to
  3942.           delete it.
  3943.  
  3944.           
  3945.                                                                     Page 63
  3946.  
  3947.           D. Report/Execute
  3948.           =================
  3949.  
  3950.           Execution of the report allows it to be printed either to a
  3951.           printer, the screen or a disk file.  If a query has been selected
  3952.           then the query acts as a filter to allow only a certain group of
  3953.           records to be printed.  A query will either be done automatically
  3954.           if the data files are more recent than the query index file or if
  3955.           they are not, you may choose to re-query the database files.  If
  3956.           the output is directed to a disk file, a name must be given to
  3957.           the output file.  If the report was defined as using
  3958.           non-continuous paper, a prompt will be given when the end of page
  3959.           is reached and a new one is required.
  3960.  
  3961.           Remember, if group expressions are present in the report, an
  3962.           appropriate query must be selected that will arrange the database
  3963.           in an order that corresponds to the groups.
  3964.  
  3965.           E. Report/Unselect
  3966.           ==================
  3967.  
  3968.           This removes the report from the work area.
  3969.  
  3970.           F. Report/Add to Cat.
  3971.           =====================
  3972.  
  3973.           Any report file with a .RPT extension may be added to the current
  3974.           catalog.  Be careful though because a given report may not refer
  3975.           to the selected form.
  3976.  
  3977.           G. Report/Remove from Cat.
  3978.           ==========================
  3979.  
  3980.           The report file may also be removed from the catalog so that it
  3981.           no longer displays but still exists on the current DOS directory.
  3982.  
  3983.           H. Report/Delete
  3984.           ================
  3985.  
  3986.           Deleting a report removes it from the DOS directory and from the
  3987.           catalog.  A confirmatory message will first be given before
  3988.           proceeding.
  3989.  
  3990.  
  3991.  
  3992.  
  3993.  
  3994.  
  3995.  
  3996.  
  3997.  
  3998.  
  3999.  
  4000.  
  4001.  
  4002.           
  4003.                                                                     Page 64
  4004.  
  4005.  
  4006.                                    Chapter 5:  Mail
  4007.                                    ================
  4008.  
  4009.           PRO-dVelBase is capable of performing a mail merge.  The process
  4010.           of mail merge means taking a standard letter and merging it with
  4011.           the records in the selected form to produce a series of
  4012.           personalized letters.  This feature is obviously quite useful in
  4013.           many applications such as advertising.  The letter may either be
  4014.           created with PRO-dVelBase's internal word processor or an
  4015.           external word processor.  If created with an external word
  4016.           processor, the file would have to be stored as a generic text
  4017.           file and then imported into PRO-dVelBase.  Because of the way
  4018.           mail merge is handled, field placement occurs a little different
  4019.           than with reports or labels.  Fields must be placed by using
  4020.           dBASE expressions and sandwiching them between the ASCII 20
  4021.           character.
  4022.  
  4023.           There are nine submenu commands under the mail menu.  They
  4024.           include:  Select, Execute, Create, Modify, Unselect, Delete, Add
  4025.           to Cat., Remove from Cat. and Import Text File.
  4026.  
  4027.           A. Mail/Create
  4028.           ==============
  4029.  
  4030.           To create a letter for mail merge:
  4031.            1.  Select Mail/Create.
  4032.            2.  Give this file an 8 character name, following dBASE naming
  4033.                conventions.
  4034.            3.  At the Mail Definitions screen, answer the questions that
  4035.                you are prompted with.
  4036.  
  4037.           Left/Right/Top/Bottom margin:
  4038.                This refers to the margins of the page.  The range that you
  4039.                may choose from is 0 to 40.
  4040.  
  4041.                ==> The default is set for 10 for left/right and 6 for
  4042.                top/bottom.
  4043.  
  4044.           Number of rows per page:
  4045.                Most letter size paper has 66 rows per page while legal size
  4046.                paper has 84.  The range allowed is from 33 to 255.
  4047.  
  4048.                ==> The default is 66.
  4049.  
  4050.           The following questions have the same meaning as in the report. 
  4051.           Please refer to that section for detail explanation of these
  4052.           questions.
  4053.  
  4054.           Continuous paper? (Y/N)
  4055.  
  4056.           Print blank records? (Y/N)
  4057.  
  4058.           Print deleted records? (Y/N)
  4059.  
  4060.           
  4061.                                                                     Page 65
  4062.  
  4063.           Name of Printer File? (A-Z)
  4064.  
  4065.           Printer Port  (A) LPT1 (B) LPT2 (C) LPT3 (D) COM1 (E) COM2:
  4066.  
  4067.           Baud rate  (A) 300 (B) 600 (C) 1200 (D) 2400 (E) 4800 (F) 9600:
  4068.  
  4069.           Parity  (A) Odd (B) None (C) Even:
  4070.  
  4071.           Stop bits  (1-2):
  4072.  
  4073.           Data bits  (7-8):
  4074.  
  4075.           The following table shows the active keys in the mail editor.
  4076.  
  4077.           =================================================================
  4078.           Active Key          Action
  4079.           -----------------------------------------------------------------
  4080.           ESC                 takes you to the previous screen and allows
  4081.                               you to exit this section of the program,
  4082.                               without saving.
  4083.           ARROW CURSOR KEYS   moves the cursor in the direction of the
  4084.                               arrows.
  4085.           PAGEDOWN            moves down 20 lines.
  4086.           PAGEUP              moves up 20 lines.
  4087.           HOME                moves the cursor to the extreme left.
  4088.           END                 moves the cursor to the last text on the
  4089.                               line.
  4090.           INSERT              toggles between overwrite and insert mode.
  4091.           DELETE              deletes the character on the cursor.
  4092.           BACKSPACE           deletes the previous character.
  4093.           F1                  context sensitive help.
  4094.           F4                  inserts a printer control character (an
  4095.                               inverted question mark) that causes the next
  4096.                               character to act as a sequence of control
  4097.                               characters to the printer depending upon how
  4098.                               it was defined in the printer definition
  4099.                               file.
  4100.           ALT-F4              inserts an expression character (ASCII 20). 
  4101.                               All text sandwiched inbetween two expression
  4102.                               characters is handled as a dBASE expression.
  4103.           F9                  list fields.
  4104.           CTRL-F9             list operators.
  4105.           ALT-F9              list functions.
  4106.           F10                 completes and saves the letter.
  4107.           CTRL-Y              clears the text from current line.
  4108.           =================================================================
  4109.  
  4110.           The mail editor is a mini word processor with word wrap features. 
  4111.           The width of the screen is dependent upon how the left and right
  4112.           margins were set.  The maximum size of the letter is limited to
  4113.           20,000 characters.  Field placement is different than on the
  4114.           report or label editor.  Fields must be placed as dBASE
  4115.           expressions sandwiched inbetween two expression characters (ASCII
  4116.           20).  The expression character is generated by pressing ALT-F4. 
  4117.  
  4118.           
  4119.                                                                     Page 66
  4120.  
  4121.           It was designed in this way to allow letters to be created on an
  4122.           external word processor and imported to PRO-dVelBase.  Formatting
  4123.           of the fields is also accomplished through dBASE expressions
  4124.           instead of answering a series of questions.  When the letter is
  4125.           finished, press F10, give it a descriptive file name and save it. 
  4126.           Again, error checking is also performed at this time and the
  4127.           letter cannot be saved until the error is corrected.
  4128.  
  4129.           B. Mail/Modify
  4130.           ==============
  4131.  
  4132.           Mail modification follows the same rules as mail creation.
  4133.  
  4134.           C. Mail/Select
  4135.           ==============
  4136.  
  4137.           Mail selection places the letter into the work area for use.  If
  4138.           there are any errors in the letter, an error will be reported,
  4139.           the file name will be in lower case in the work area and the file
  4140.           description will read UNEXECUTABLE and/or UNMODIFIABLE FILE.  If
  4141.           the file name is present in the catalog but the file does not
  4142.           actually exist then the message "FILE DOES NOT EXIST" will
  4143.           appear.  This type of error may occur if a file is deleted from
  4144.           the DOS level instead of using PRO-dVelBase to delete it.
  4145.  
  4146.           D. Mail/Execute
  4147.           ===============
  4148.  
  4149.           The selected letter will be printed either to the printer, file
  4150.           or screen.  Any formulas present in the letter will be
  4151.           automatically evaluated and the appropriate values inserted
  4152.           before printing occurs.  If a query is selected, only the
  4153.           filtered records will be printed.
  4154.  
  4155.           E. Mail/Unselect
  4156.           ================
  4157.  
  4158.           Unselection removes the mail from the work area.
  4159.  
  4160.           F. Mail/Add to Cat.
  4161.           ===================
  4162.  
  4163.           Any mail file with a .LET extension may be added to the current
  4164.           catalog.  Be careful though because a given mail may not refer to
  4165.           the selected form.
  4166.  
  4167.           G. Mail/Remove from Cat.
  4168.           ========================
  4169.  
  4170.           The mail file may also be removed from the catalog so that it no
  4171.           longer displays but still exists on the current DOS directory.
  4172.  
  4173.  
  4174.  
  4175.  
  4176.           
  4177.                                                                     Page 67
  4178.  
  4179.  
  4180.           H. Mail/Delete
  4181.           ==============
  4182.  
  4183.           Deleting a mail removes it from the DOS directory and from the
  4184.           catalog.  A confirmatory message will first be given before
  4185.           proceeding.
  4186.  
  4187.           I. Mail/Import Text File
  4188.           ========================
  4189.  
  4190.           External word processors may be used to create a letter.  Many
  4191.           stand alone word processors have much more powerful features than
  4192.           the mini word processor in PRO-dVelBase and thus are more suited
  4193.           for long letters.  Also, this feature allows previously created
  4194.           letters to be used.  In order for PRO-dVelBase to use these
  4195.           files, they must be stored as generic text files.  This precludes
  4196.           the use of any special formatting codes in the stand alone word
  4197.           processor.  Also, the size of the file imported is limited to
  4198.           20,000 characters.
  4199.  
  4200.  
  4201.  
  4202.  
  4203.  
  4204.  
  4205.  
  4206.  
  4207.  
  4208.  
  4209.  
  4210.  
  4211.  
  4212.  
  4213.  
  4214.  
  4215.  
  4216.  
  4217.  
  4218.  
  4219.  
  4220.  
  4221.  
  4222.  
  4223.  
  4224.  
  4225.  
  4226.  
  4227.  
  4228.  
  4229.  
  4230.  
  4231.  
  4232.  
  4233.  
  4234.           
  4235.                                                                     Page 68
  4236.  
  4237.  
  4238.                                   Chapter 6:  Label
  4239.                                   =================
  4240.  
  4241.           PRO-dVelBase is capable of printing labels.  Labels are
  4242.           self-adhesive and can be pasted onto envelopes for mailing.  The
  4243.           differences between the report and label generation are as
  4244.           follows:
  4245.  
  4246.           Label generation is capable of printing multiple copies of each
  4247.           record while report generation can only print one copy of each
  4248.           record.
  4249.  
  4250.           Label generation is capable of printing different records across
  4251.           the page while report generation can print only one record across
  4252.           the page.
  4253.  
  4254.           There are 8 submenu commands under the label menu.  These
  4255.           include:  Select, Execute, Create, Modify, Unselect, Delete, Add
  4256.           to Cat. and Remove from Cat.
  4257.  
  4258.           The selections under the label menu is similar to those under the
  4259.           report menu.
  4260.  
  4261.           A. Label/Create
  4262.           ===============
  4263.  
  4264.           Labels are created as follows:
  4265.            1.  Select Label/Create.
  4266.            2.  Give this file an 8 character name, following dBASE naming
  4267.                conventions.
  4268.            3.  Answer the questions on the Label Definitions Screen. 
  4269.                Pressing F9 will automatically display many common label
  4270.                formats and selecting one will fill in the appropriate
  4271.                numbers for the questions.
  4272.  
  4273.           For dot-matrix printer labels, also set the number of labels
  4274.           across and down along with the inter-label spacing.
  4275.  
  4276.           For laser printer labels, ensure the printer is printing at 6
  4277.           lines per inch.  This is done by defining a printer definition
  4278.           file under Options/Printer Setup.  Note that many laser printers
  4279.           cannot print on the top and bottom margins therefore the rows per
  4280.           page would have to be set at 60 instead of 66.  Be sure that the
  4281.           labels used are approved for laser printers.
  4282.  
  4283.           Number of copies of each label:
  4284.                This refers to the number of copies of the label(s) that you
  4285.                would like to produce.  The range that you may choose from
  4286.                is 1 to 255.
  4287.  
  4288.                ==> The default is set for 1.
  4289.  
  4290.  
  4291.  
  4292.           
  4293.                                                                     Page 69
  4294.  
  4295.  
  4296.           Number of label columns:
  4297.                This refers to the number of character spaces across the
  4298.                label.  Each character occupies one column.  The range that
  4299.                you may choose from is 10 to 78.
  4300.  
  4301.                ==> The default is 35, which is for a 3 1/2 inch across
  4302.                label.
  4303.  
  4304.           Number of label rows:
  4305.                This refers to the number of rows there are down the label. 
  4306.                The range is 1 to 18.
  4307.  
  4308.                ==> The default is 5, which is for a 15/16 inch down label.
  4309.  
  4310.           Number of rows per page:
  4311.                This refers to the number of rows that exist down the page. 
  4312.                The range is 1 to 100.
  4313.  
  4314.                ==> The default is 66.
  4315.  
  4316.           Number of labels across:
  4317.                This refers to how many labels there are going across your
  4318.                page.  Some labels are 1 across, meaning they exist in one
  4319.                long strip.  The labels would be positioned one above the
  4320.                next.  The range is 1 to 10 across, therefore, you may use
  4321.                labels that are from 1 to 10 across.
  4322.  
  4323.                ==> The default is 1.
  4324.  
  4325.           Number of labels down:
  4326.                This refers to the number of rows of labels that exist on
  4327.                one page.  The range is 1 to 30.
  4328.  
  4329.                ==> The default is 11.
  4330.  
  4331.           Number of columns between labels:
  4332.                This refers to the number of spaces between each label in a
  4333.                horizontal direction, going across the page.  Each space
  4334.                occupies one column.  The range is 0 to 50.
  4335.  
  4336.                ==> The default is 0.
  4337.  
  4338.           Number of rows between labels:
  4339.                This refers to the number of rows that exist between each
  4340.                label in the vertical direction, going down the page.  The
  4341.                range is 0 to 50.
  4342.  
  4343.                ==> The default is 1.
  4344.  
  4345.  
  4346.  
  4347.  
  4348.  
  4349.  
  4350.           
  4351.                                                                     Page 70
  4352.  
  4353.  
  4354.           Left margin of page:
  4355.                This refers to the number of columns, or spaces, from the
  4356.                left edge of the paper to the edge of the first label.  The
  4357.                range is 0 to 100.
  4358.  
  4359.                ==> The default is 0.
  4360.  
  4361.           Top margin of page:
  4362.                This refers to the number of rows from the top edge of the
  4363.                paper to the top edge of the first row of labels.  Some
  4364.                printers, including some laser printers, are unable to print
  4365.                to the very edge of the paper.  Therefore, to accomodate for
  4366.                this, some labels are made so that there is a margin on the
  4367.                top and on the bottom.  The range for the top margin is 0 to
  4368.                50.
  4369.  
  4370.                ==> The default is 0.
  4371.  
  4372.           Continuous paper? (Y/N)
  4373.                Answering NO to this question will cause PRO-dVelBase to
  4374.                prompt you to insert the next page.
  4375.  
  4376.                ==> The default is YES.
  4377.  
  4378.           Print blank records? (Y/N)
  4379.                You may specify if you want blank records printed.  If you
  4380.                print the blank records, there will be a blank label where
  4381.                your blank record is.  If you do not want to waste a label,
  4382.                then you should not print the blank records.
  4383.  
  4384.                ==> The default is NO.
  4385.  
  4386.           Print deleted records? (Y/N)
  4387.                If records have been marked as deleted, should they be
  4388.                printed?  Generally you will not want deleted records to be
  4389.                printed.
  4390.  
  4391.                ==> The default is NO.
  4392.  
  4393.           Name of Printer File? (A-Z)
  4394.                The following printer questions have the same meaning as in
  4395.                a report file.  Please refer to the appropriate section in
  4396.                Report/Create for the meaning of these questions.
  4397.  
  4398.           Printer Port (A) LPT1 (B) LPT2 (C) LPT3 (D) COM1 (E) COM2:
  4399.  
  4400.           Baud rate (A) 300 (B) 600 (C) 1200 (D) 2400 (E) 4800 (F) 9600:
  4401.  
  4402.           Parity (A) Odd (B) None (C) Even:
  4403.  
  4404.           Stop bits (1-2):
  4405.  
  4406.           Data bits (7-8):
  4407.  
  4408.           
  4409.                                                                     Page 71
  4410.  
  4411.           The following table shows the active keys on the label editor.
  4412.  
  4413.           =================================================================
  4414.           Active Key          Action
  4415.           -----------------------------------------------------------------
  4416.           ESC                 takes you to the previous screen and allows
  4417.                               you to exit this section of the program,
  4418.                               without saving.
  4419.           ARROW CURSOR KEYS   moves the cursor in the direction of the
  4420.                               arrows.
  4421.           HOME                moves the cursor to the extreme left.
  4422.           END                 moves the cursor to the last text or field on
  4423.                               the line.
  4424.           INSERT              toggles between overwrite and insert mode.
  4425.           DELETE              deletes the text or field on the cursor.
  4426.           BACKSPACE           deletes the previous text character.
  4427.           ENTER               inserts a blank line when in insert mode,
  4428.                               only if the bottom line of the label is
  4429.                               empty.
  4430.           F1                  context sensitive help.
  4431.           F3                  starts and ends blocking of an area.
  4432.           F4                  inserts a printer control character (an
  4433.                               inverted question mark) that causes the next
  4434.                               character to act as a sequence of control
  4435.                               characters to the printer depending upon how
  4436.                               it was defined in the printer definition
  4437.                               file.
  4438.           F5                  copies blocked area.
  4439.           F6                  moves the blocked area.
  4440.           F7                  places and defines a database, calculated or
  4441.                               system field.
  4442.           F10                 completes and saves the label.
  4443.           CTRL-Y              clears the text from a line.
  4444.           =================================================================
  4445.  
  4446.           After answering the last question, the label editor will be
  4447.           brought up and a label will appear with the dimensions specified
  4448.           on the previous screen.
  4449.  
  4450.           This editor works exactly like the report editor.  Text may be
  4451.           placed in it and fields may be placed by pressing F7.  Again you
  4452.           may define database, calculated or system fields and the
  4453.           questions will be exactly the same as for the report editor.  The
  4454.           differences between the label editor and the report editor are:
  4455.            1.  The size of the screen is smaller than for the report
  4456.                editor.
  4457.            2.  No grouping is allowed.
  4458.            3.  Memo fields may not be placed.
  4459.            4.  Calculated fields will have a database name of "CAL_L"
  4460.                instead of "CAL_R".
  4461.  
  4462.           The label is saved by pressing F10 and giving it a file
  4463.           description.  Again, error checking is performed when F10 is
  4464.           pressed.  Please refer to the Report chapter for a more complete
  4465.  
  4466.           
  4467.                                                                     Page 72
  4468.  
  4469.           explanation of the editor.
  4470.  
  4471.           B. Label/Modify
  4472.           ===============
  4473.  
  4474.           Label modification follows the same rules as label creation.
  4475.  
  4476.           C. Label/Select
  4477.           ===============
  4478.  
  4479.           Label selection places the label into the work area for use. 
  4480.           Error checking occurs also on selection and if an error occurs
  4481.           the name will be put in lower case and a file description of
  4482.           UNEXECUTABLE and/or UNMODIFIABLE FILE will be given.  If the file
  4483.           name is present in the catalog but the file does not actually
  4484.           exist then the message "FILE DOES NOT EXIST" will appear.  This
  4485.           type of error may occur if a file is deleted from the DOS level
  4486.           instead of using PRO-dVelBase to delete it.
  4487.  
  4488.           D. Label/Execute
  4489.           ================
  4490.  
  4491.           Execution of a label allows the output to be directed to either
  4492.           the printer, screen or file.
  4493.  
  4494.           E. Label/Unselect
  4495.           =================
  4496.  
  4497.           Unselection removes the label from the work area.
  4498.  
  4499.           F. Label/Add to Cat.
  4500.           ====================
  4501.  
  4502.           Any label file with a .LAB extension may be added to the current
  4503.           catalog.  Be careful though because a given label may not refer
  4504.           to the selected form.
  4505.  
  4506.           G. Label/Remove from Cat.
  4507.           =========================
  4508.  
  4509.           The label file may also be removed from the catalog so that it no
  4510.           longer displays but still exists on the current DOS directory.
  4511.  
  4512.           H. Label/Delete
  4513.           ===============
  4514.  
  4515.           Deleting a label removes it from the DOS directory and from the
  4516.           catalog.  A confirmatory message will first be given before
  4517.           proceeding.
  4518.  
  4519.  
  4520.  
  4521.  
  4522.  
  4523.  
  4524.           
  4525.                                                                     Page 73
  4526.  
  4527.  
  4528.                                 Chapter 7:  Utilities
  4529.                                 =====================
  4530.  
  4531.           Utilities consists of a group of less used yet still important
  4532.           functions.  These include:  Append, Post, Setup, Re-index,
  4533.           Database Pack, Clone and Zap.
  4534.  
  4535.           A. Append
  4536.           =========
  4537.  
  4538.           The process of appending consists of copying records from one
  4539.           database file to the end of a second database file.  The file
  4540.           copied from is called the source database and consists of the
  4541.           primary database file of the currently selected form.  The file
  4542.           copied to is called the target database.
  4543.  
  4544.           One of the main purpose of the append command is to store records
  4545.           that are infrequently used.  For example, in an invoicing system,
  4546.           records older than one month may be appended from the current
  4547.           "working" database file to a "history" database file.  This will
  4548.           keep the current working database small and easily manageable and
  4549.           also keep records indefinitely if necessary.  Generally, the
  4550.           history database file is a cloned copy of the working database to
  4551.           ensure the fields of each database file are the same.
  4552.  
  4553.           There are eight submenu commands under the append menu.  They
  4554.           include:  Select, Execute, Create, Modify, Unselect, Delete, Add
  4555.           to Cat. and Remove from Cat.
  4556.  
  4557.           Append/Create
  4558.           -------------
  4559.  
  4560.           To create an append file:
  4561.            1.  Select Append/Create.
  4562.            2.  Give this file an 8 character name, following dBASE naming
  4563.                conventions.
  4564.            3.  Answer the questions on the Append Database Definitions
  4565.                screen.
  4566.  
  4567.           Target Database:
  4568.                The target database is the database file being appended to. 
  4569.                A pick list will appear with the names of all the database
  4570.                files (with extension .DBF) on the current directory.  If no
  4571.                other database files are available, an error message will be
  4572.                generated.  Select the file you would like to append to.  If
  4573.                a target database was previously selected, press F9 to view
  4574.                this pick list.
  4575.  
  4576.           Do you want to delete transferred records? (Y/N)
  4577.                The appended records may be marked for deletion on the
  4578.                source database.  Since this command works at the database
  4579.                file level, any linked records on the selected form will not
  4580.                be deleted.  Only the records in the primary database file
  4581.  
  4582.           
  4583.                                                                     Page 74
  4584.  
  4585.                will be deleted.  You would generally want to delete the
  4586.                records in the primary database file and pack them after
  4587.                appending to ensure that only one copy of the record exists.
  4588.  
  4589.                ==> The default is YES.
  4590.  
  4591.           Do you want to update a logical field on the transferred records?
  4592.           (Y/N)
  4593.                Another way to know which records have been appended from
  4594.                the source database is to update a logical field.  For
  4595.                example, if a logical field with the name APPENDED existed
  4596.                on the source database, all records appended would be
  4597.                updated to TRUE on this field.  This method allows a way to
  4598.                mark the appended records without deleting them.
  4599.  
  4600.                ==> The default is YES.
  4601.  
  4602.           Logical Fieldname:
  4603.                If the answer was YES to the previous question, a logical
  4604.                field must be selected.  If no logical fields exist on the
  4605.                source database file, you cannot proceed.  A window will
  4606.                open and the field may be selected.  If a logical field was
  4607.                previously selected, press F9 to open this window.
  4608.  
  4609.           After all these questions have been answered, the append editor
  4610.           will appear.  It consists of two windows.  The window on the left
  4611.           contains all the fields in the source database while the one on
  4612.           the right will contain all the fields on the target database. 
  4613.           The process of creating an append file consists of placing fields
  4614.           in the target database in which you would like to append records
  4615.           to.  The cursor bar is in the target database window.  Moving the
  4616.           cursor bar up and down causes the arrow head in the source
  4617.           database window to move correspondingly.  Place the arrow head
  4618.           over the first field you would like appended from.  Press F9. 
  4619.           This will open a window listing all the fields in the target
  4620.           database that have the same field type.  Select the field you
  4621.           would like appended to.  The field names do not have to match but
  4622.           the field types do.  Continue this process until you have
  4623.           finished.  If any mistakes were made, move the cursor to the
  4624.           appropriate field and press the DELETE key.  When finished press
  4625.           F10, give it an appropriate file name description and save it. 
  4626.           The created append file has an extension .APP.
  4627.  
  4628.           Append/Modify
  4629.           -------------
  4630.  
  4631.           Append modification follows the same rules as append creation.
  4632.  
  4633.           Append/Select
  4634.           -------------
  4635.  
  4636.           Append selection places the append file into the work area for
  4637.           use.  Error checking occurs also on selection and if an error
  4638.           occurs the name will be put in lower case and a file description
  4639.  
  4640.           
  4641.                                                                     Page 75
  4642.  
  4643.           of UNEXECUTABLE and/or UNMODIFIABLE FILE will be given.
  4644.  
  4645.           Append/Execute
  4646.           --------------
  4647.  
  4648.           Execution of an append results in records from the source
  4649.           database being appended to the target database.  If a query is
  4650.           present in the work area, only the records filtered by the query
  4651.           will be appended.  You may want to execute the query first to see
  4652.           if the appropriate records will be appended.
  4653.  
  4654.           Append/Unselect
  4655.           ---------------
  4656.  
  4657.           Unselection removes the append file from the work area.
  4658.  
  4659.           Append/Add to Cat.
  4660.           ------------------
  4661.  
  4662.           Any append file with a .APP extension may be added to the current
  4663.           catalog.  Be careful though because a given append may not refer
  4664.           to the selected form.
  4665.  
  4666.           Append/Remove from Cat.
  4667.           -----------------------
  4668.  
  4669.           The append file may also be removed from the catalog so that it
  4670.           no longer displays but still exists on the current DOS directory.
  4671.  
  4672.           Append/Delete
  4673.           -------------
  4674.  
  4675.           Deleting an append removes it from the DOS directory and from the
  4676.           catalog.  A confirmatory message will first be given before
  4677.           proceeding.
  4678.  
  4679.           B. Post
  4680.           =======
  4681.  
  4682.           Posting is very similar to appending in that two database files
  4683.           are involved:  a source database and a target database file.  The
  4684.           difference lies in the fact that posting does not add new records
  4685.           to the target database; the records are only updated.  Posting
  4686.           requires a key field on the target database to be indexed.  When
  4687.           posting occurs, the records to be posted from the source database
  4688.           will update the corresponding records on the target database if a
  4689.           match is found on the key field.  The type of update depends upon
  4690.           the field type.  A numeric field type may be added, subtracted or
  4691.           replaced.  A non-numeric field type may only be replaced.
  4692.  
  4693.           A typical example of posting occurs in an invoicing system.  If
  4694.           you have two database files with one containing the sales made
  4695.           and the other containing the current inventory.  The two
  4696.           databases have a common key field called ITEM_NUM, which
  4697.  
  4698.           
  4699.                                                                     Page 76
  4700.  
  4701.           represents the item number.  This field must be indexed in the
  4702.           inventory database file.  The invoice database will contain all
  4703.           the sales made during the day.  Posting will then allow the
  4704.           number sold of each item number in the invoice database to be
  4705.           subtracted from the number in stock field in the inventory
  4706.           database.  This procedure will ensure that the number in stock is
  4707.           a correct count.
  4708.  
  4709.           There are eight submenu commands under the post menu.  These
  4710.           include:  Select, Execute, Create, Modify, Unselect, Delete, Add
  4711.           to Cat. and Remove from Cat.
  4712.  
  4713.           Post/Create
  4714.           -----------
  4715.  
  4716.           To create a post file:
  4717.            1.  Select Post/Create.
  4718.            2.  Give this file an 8 character name, following dBASE naming
  4719.                conventions.
  4720.            3.  Answer the questions on the Post Database Definitions
  4721.                screen.
  4722.  
  4723.           Target Database:
  4724.                The target database is the database file being posted to.  A
  4725.                window will appear with the names of all the database files
  4726.                (with extension .DBF) on the current directory.  Select the
  4727.                file you would like to post to.  If a target database was
  4728.                previously selected, press F9 to open this window.
  4729.  
  4730.           Do you want to delete transferred records? (Y/N)
  4731.                The posted records may be marked for deletion on the source
  4732.                database file.  Since this command works at the database
  4733.                file level, any linked records on the selected form will not
  4734.                be deleted.  Only the records in the primary database file
  4735.                will be deleted.
  4736.  
  4737.                ==> The default is YES.
  4738.  
  4739.           Do you want to update a logical field on the transferred records?
  4740.           (Y/N)
  4741.                Another way to know which records have been posted from the
  4742.                source database is to update a logical field.  For example,
  4743.                if a logical field with the name POSTED existed on the
  4744.                source database, all records posted would be updated to TRUE
  4745.                on this field.  This method allows a way to mark the posted
  4746.                records without deleting them.  This is generally the
  4747.                preferable way to mark a record as being already posted
  4748.                because a query may be set up so that all records that have
  4749.                the POSTED field as TRUE will not be re-posted.
  4750.  
  4751.                ==> The default is YES.
  4752.  
  4753.  
  4754.  
  4755.  
  4756.           
  4757.                                                                     Page 77
  4758.  
  4759.  
  4760.           Logical Fieldname:
  4761.                If the answer was YES to the previous question, a logical
  4762.                field must be selected.  If no logical fields exist on the
  4763.                source database file, you cannot proceed.  A window will
  4764.                open and the field may be selected.  If a logical field was
  4765.                previously selected, press F9 to open this window.
  4766.  
  4767.           After all these questions have been answered, the post editor
  4768.           will appear.  It consists of three windows.  The window on the
  4769.           left contains all the fields in the source database, the window
  4770.           in the middle contains the operation to be performed and the one
  4771.           on the right will contain all the fields on the target database. 
  4772.           The process of creating a post file consists of placing fields in
  4773.           the target database in which you would like to post records to
  4774.           and giving the appropriate operations to them.  The cursor bar is
  4775.           initially in the middle operation window and the default
  4776.           operation is NONE.  The NONE operation means that nothing will be
  4777.           done to the target field if the record is posted.  Moving the
  4778.           cursor bar up and down causes the arrow head in the other two
  4779.           windows to move correspondingly.  Initially define the key field. 
  4780.           Move the cursor over to the key and press K.  Press the right
  4781.           arrow and move the cursor to the target database window.  Press
  4782.           F9 to view the indexed fields in the target database.  Select the
  4783.           appropriate one.  The entire process of creating a post file
  4784.           consists of placing fields to be posted to in the target database
  4785.           window and setting the appropriate operation in the middle
  4786.           operation window.  The keys used to set the appropriate operation
  4787.           are K for Key, N for None, R for Replace, A for Add and S for
  4788.           Subtract.  When the cursor is in the target database window, F9
  4789.           will list the fields that have the same field type as the
  4790.           corresponding field in the source database window.  To delete a
  4791.           particular field, press the DELETE key.  When finished press F10,
  4792.           give it an appropriate file name description and save it.  A post
  4793.           file is saved with extension .PST.
  4794.  
  4795.           Post/Modify
  4796.           -----------
  4797.  
  4798.           Post modification follows the same rules as post creation.
  4799.  
  4800.           Post/Select
  4801.           -----------
  4802.  
  4803.           Post selection places the post file into the work area for use. 
  4804.           Error checking occurs also on selection and if an error occurs
  4805.           the name will be put in lower case and a file description of
  4806.           UNEXECUTABLE and/or UNMODIFIABLE FILE will be given.
  4807.  
  4808.           Post/Execute
  4809.           ------------
  4810.  
  4811.           Execution of a post results in records from the source database
  4812.           being posted to the target database.  If a query is present in
  4813.  
  4814.           
  4815.                                                                     Page 78
  4816.  
  4817.           the work area, only the records filtered by the query will be
  4818.           posted.  You may want to execute the query first to see if the
  4819.           appropriate records will be posted.
  4820.  
  4821.           Post/Unselect
  4822.           -------------
  4823.  
  4824.           Unselection removes the post file from the work area.
  4825.  
  4826.           Post/Add to Cat.
  4827.           ----------------
  4828.  
  4829.           Any post file with a .PST extension may be added to the current
  4830.           catalog.  Be careful though because a given post may not refer to
  4831.           the selected form.
  4832.  
  4833.           Post/Remove from Cat.
  4834.           ---------------------
  4835.  
  4836.           The post file may also be removed from the catalog so that it no
  4837.           longer displays but still exists on the current DOS directory.
  4838.  
  4839.           Post/Delete
  4840.           -----------
  4841.  
  4842.           Deleting a post removes it from the DOS directory and from the
  4843.           catalog.  A confirmatory message will first be given before
  4844.           proceeding.
  4845.  
  4846.           C. Setup
  4847.           ========
  4848.  
  4849.           Setup takes a pre-existing database file with extension .DBF and
  4850.           creates a field definition file (.FLD), screen definition file
  4851.           (.SCN) and a catalog file (.CAT).  These are the three additional
  4852.           files necessary to define a form.  This set is necessary before
  4853.           any database files created by dBASE may be used by PRO-dVelBase.
  4854.  
  4855.           When Setup is selected, a directory of all files with .DBF
  4856.           extension is listed.  The appropriate file may then be selected. 
  4857.           A warning will be given if the file already has an associated
  4858.           .FLD file.  This is because Setup will delete the previous .FLD
  4859.           file.
  4860.  
  4861.           A form will then be created with all the fields listed vertically
  4862.           and their field names as labels for the field.  Follow the
  4863.           instructions under Form/Create and Form/Modify to modify this
  4864.           form.
  4865.  
  4866.           When finished press F10, give the form a optional file
  4867.           description and save it.  The form is now ready to use by
  4868.           PRO-dVelBase.
  4869.  
  4870.  
  4871.  
  4872.           
  4873.                                                                     Page 79
  4874.  
  4875.  
  4876.           D. Re-index
  4877.           ===========
  4878.  
  4879.           This command rebuilds the index files associated with the primary
  4880.           database file of a form along with all the linked database files
  4881.           if desired.  Generally, PRO-dVelBase automatically handles
  4882.           updating of the index when new records are added or when
  4883.           pre-existing records are modified.  Sometimes the index files may
  4884.           get corrupted.  Symptoms of a corrupted index file include
  4885.           inaccurate sorts on indexed table view and inability to access
  4886.           linked records through a key field.  The Re-index command will
  4887.           fix this problem.
  4888.  
  4889.           E. Database Pack
  4890.           ================
  4891.  
  4892.           Packing is a command that physically removes the records that
  4893.           have been marked for deletion from the database file.  It is
  4894.           generally recommended to backup the files first before packing in
  4895.           case you change your mind about the pack.  Related files may also
  4896.           be packed at the same time and PRO-dVelBase will prompt you if
  4897.           there are any related files.
  4898.  
  4899.           F. Clone
  4900.           ========
  4901.  
  4902.           Cloning is a command that allows the structure of the primary
  4903.           database file to be reproduced.  The currently selected form is
  4904.           used for cloning.  A name must be given for the new form along
  4905.           with an optional file description.  Each field of the primary
  4906.           database file will be reproduced along with its fixed field
  4907.           definitions.  Changeable field definitions, formulas, error
  4908.           formulas, error messages, help messages, calculated fields and
  4909.           scroll windows are dropped along with any relationship
  4910.           definitions and indexes.  The new form also does not have any
  4911.           data in it.
  4912.  
  4913.           One of the purposes of cloning is to produce a database file that
  4914.           can act as a target database for the append command.  This allows
  4915.           records to be saved in a "history" database file and deleted from
  4916.           the current "working" database file to keep it small.
  4917.  
  4918.           G. Zap
  4919.           ======
  4920.  
  4921.           Zapping a database file along with Form/Delete are potentially
  4922.           the most dangerous commands in PRO-dVelBase.  Zapping completely
  4923.           removes all the records in the primary database file of the
  4924.           selected form in one swoop.  A warning message will be given
  4925.           before being allowed to proceed.
  4926.  
  4927.  
  4928.  
  4929.  
  4930.           
  4931.                                                                     Page 80
  4932.  
  4933.  
  4934.                                  Chapter 8:  Options
  4935.                                  ===================
  4936.  
  4937.           Options consists of a group of functions that affect where and
  4938.           how PRO-dVelBase will operate.  They include:  Change Dir,
  4939.           Recalc, Flush, Printer Setup, Save Options and Quit.
  4940.  
  4941.           A. Change Dir
  4942.           =============
  4943.  
  4944.           It is generally recommended that a particular application be
  4945.           stored on a separate subdirectory rather than on the same one
  4946.           that PRO-dVelBase resides on.  The data directory may be changed
  4947.           using this option.  The naming convention follows standard DOS
  4948.           convention.  Drives may also be changed by using the commands A:\
  4949.           for A drive, B:\ for B drive, etc.
  4950.  
  4951.           B. Recalc
  4952.           =========
  4953.  
  4954.           The recalc command toggles automatic recalc ON and OFF.  With the
  4955.           recalc ON, all calculated and derived fields will be
  4956.           automatically recalculated each time a field is updated in the
  4957.           form.  With it OFF, recalculations only occur when a record is
  4958.           saved.  In both cases manual recalc with CTRL-C always works. 
  4959.           The default is ON.  It may be turned off if PRO-dVelBase is
  4960.           running on a slower machine and many calculated or derived fields
  4961.           have been defined.
  4962.  
  4963.           C. Flush
  4964.           ========
  4965.  
  4966.           The flush command causes all DOS buffers to be immediately
  4967.           flushed once a write occurs.  Normally writes to a disk are
  4968.           stored in a DOS buffer and only when the buffers are full does a
  4969.           disk write occur.  This situation is dangerous if you experience
  4970.           a power failure before the buffers are flushed.  The default for
  4971.           flush is ON and this guarantees that a write will write that data
  4972.           immediately to the disk.  You may elect to turn off the flush if
  4973.           you are using a floppy disk system as flushing does slow the
  4974.           saving of each record.
  4975.  
  4976.           D. Printer Setup
  4977.           ================
  4978.  
  4979.           Printer Setup allows printer definition files (drivers) to be
  4980.           defined.  These files have the extension .PRT and store the
  4981.           control codes for various print styles for your particular
  4982.           printer.  This is an important preliminary step in installing
  4983.           PRO-dVelBase.  Up to 26 different printer definition files may be
  4984.           created with the names A.PRT to Z.PRT.  Define as many printer
  4985.           definition files as you have printers connected to your computer. 
  4986.           The control codes stored in these files are used by report, label
  4987.  
  4988.           
  4989.                                                                     Page 81
  4990.  
  4991.           and mail.
  4992.  
  4993.           Printer Setup/Create
  4994.           --------------------
  4995.  
  4996.           Selecting this command will take you to the printer definition
  4997.           screen.  First a Printer File Name has to be assigned.  The name
  4998.           must be a letter from A to Z.  PRO-dVelBase defaults to the next
  4999.           available letter.  Next, the name of the printer must be entered. 
  5000.           Editing of the fields occurs by pressing E or ENTER.  The control
  5001.           codes for each of the given printer effects must then be entered
  5002.           in decimal form with a space between each code.  Most printers
  5003.           that require multiple numeric control codes start with the escape
  5004.           code (ASCII 27).  If a certain effect does not exist, you may
  5005.           leave the codes out.  Please refer to your own printer manual for
  5006.           the correct codes.
  5007.  
  5008.           Initialization codes refer to the codes that must be sent to the
  5009.           printer to clear and reset the printer.  PRO-dVelBase
  5010.           automatically sends these out before a report, label or mail is
  5011.           printed.
  5012.  
  5013.           Termination codes are the codes that are sent to the printer
  5014.           indicating the print job is finished.  These are automatically
  5015.           sent out when a report, label or mail is finished printing.
  5016.  
  5017.           Enter the control codes for each of the effects listed. 
  5018.           Generally an effect has a turn on code and a turn off code.  If a
  5019.           printer has a special effect, such as superscript, subscript,
  5020.           etc., the codes may be entered at this point and the name of the
  5021.           effect also saved.
  5022.  
  5023.           The printer control codes may also automatically be filled in by
  5024.           pressing F9 and selecting your printer.  Many printers have
  5025.           control codes that are the same as the printers listed.  Epson
  5026.           control codes are commonly used by many printers and selecting an
  5027.           Epson printer is usually a safe bet if your printer is Epson
  5028.           compatible.  Many laser printers are compatible with the H.P. 
  5029.           LaserJet therefore selecting one of the LaserJet options may
  5030.           work.
  5031.  
  5032.           The codes are sent to the printer when the inverted question mark
  5033.           (ASCII 168) is encountered in a report, label or mail.  The
  5034.           screen code defines which printer control codes will be sent out
  5035.           to the printer.  Note that an upper case letter will turn on the
  5036.           effect and a lower case letter will turn off the effect.
  5037.  
  5038.           When finished, press F10 to save the printer definition file.
  5039.  
  5040.           Printer Setup/Modify
  5041.           --------------------
  5042.  
  5043.           A previous defined printer definition file may be selected from
  5044.           the directory and modified.
  5045.  
  5046.           
  5047.                                                                     Page 82
  5048.  
  5049.           Printer Setup/Delete
  5050.           --------------------
  5051.  
  5052.           A previous defined printer definition file may be deleted.
  5053.  
  5054.           E. Save WorkArea
  5055.           ================
  5056.  
  5057.           This command saves:
  5058.            1.  The contents of the work area.
  5059.            2.  The status of the recalc, flush and insert.
  5060.            3.  The current data directory.
  5061.  
  5062.           This information is stored in the file PRO.OPT and the next time
  5063.           PRO-dVelBase is executed, the saved options are automatically
  5064.           loaded.
  5065.  
  5066.           F. Quit
  5067.           =======
  5068.  
  5069.           This commands exits from PRO-dVelBase and automatically closes
  5070.           any open files.
  5071.  
  5072.  
  5073.  
  5074.  
  5075.  
  5076.  
  5077.  
  5078.  
  5079.  
  5080.  
  5081.  
  5082.  
  5083.  
  5084.  
  5085.  
  5086.  
  5087.  
  5088.  
  5089.  
  5090.  
  5091.  
  5092.  
  5093.  
  5094.  
  5095.  
  5096.  
  5097.  
  5098.  
  5099.  
  5100.  
  5101.  
  5102.  
  5103.  
  5104.           
  5105.                                                                     Page 83
  5106.  
  5107.  
  5108.                       Appendix A:  dBASE (TM) Naming Conventions
  5109.                       ==========================================
  5110.  
  5111.            1.  PRO-dVelBase uses dBASE naming convention for all file
  5112.                names.
  5113.  
  5114.            2.  A database file name may contain up to 8 characters. 
  5115.                Therefore, PRO-dVelBase will not even permit you to enter
  5116.                file names having more than 8 characters.
  5117.  
  5118.            3.  The first character of a database file name must be a letter
  5119.                of the alphabet.
  5120.  
  5121.            4.  Except for the first character, the rest of the characters
  5122.                may be letters, numeric digits, or the underscore(_).
  5123.  
  5124.            5.  Database file names may not contain spaces or symbols other
  5125.                than the underscore.  The reasons for this is that DOS uses
  5126.                the period (.), the slash (/), the colon (:) and the
  5127.                semicolon (;) for special functions.  Therefore, these
  5128.                symbols should not be used in file names.  As a precaution,
  5129.                PRO-dVelBase will prevent you from making these errors.
  5130.  
  5131.                Note:     All file names will be forced to upper case
  5132.                          regardless of what case you use to enter them.
  5133.  
  5134.            6.  There are also a few names that are reserved by PRO-dVelBase
  5135.                for internal usage.  These names are CAL_F, CAL_R AND CAL_L. 
  5136.                They are used for calculated fields therefore cannot be used
  5137.                as file names.
  5138.  
  5139.            7.  Field names follow the same convention except they may be up
  5140.                to 10 characters long.
  5141.  
  5142.            8.  All file and field names used by PRO-dVelBase must follow
  5143.                these conventions.
  5144.  
  5145.  
  5146.  
  5147.  
  5148.  
  5149.  
  5150.  
  5151.  
  5152.  
  5153.  
  5154.  
  5155.  
  5156.  
  5157.  
  5158.  
  5159.  
  5160.  
  5161.  
  5162.           
  5163.                                                                     Page 84
  5164.  
  5165.  
  5166.                          Appendix B:  Formulas and Functions
  5167.                          ===================================
  5168.  
  5169.           PRO-dVelBase allows you to perform mathematical operations as
  5170.           well as complex queries.  This chapter will help you to
  5171.           understand the basis for these procedures.  It will help you in
  5172.           writing formulas and conditions using operators and functions.
  5173.  
  5174.           A. Formulas
  5175.           ===========
  5176.  
  5177.           A PRO-dVelBase formula is equivalent to a dBASE expression and
  5178.           consists of a string that contains a sequence of operators,
  5179.           functions, field names and constants.  All expressions evaluate
  5180.           to a specific type, such as numeric, character, date or logical. 
  5181.           Therefore, field names and constants used in an expression must
  5182.           be of the same type or convert to the same type.  For example,
  5183.           you may add a numeric field only to a numeric field.  To further
  5184.           clarify this point, the condition to query a surname field must
  5185.           contain a formula that returns a character type.  A formula that
  5186.           returns a numeric type is not acceptable.  The only exception to
  5187.           this rule is that a whole number may be added to or subtracted
  5188.           from a date type resulting in another date type.
  5189.  
  5190.           PRO-dVelBase has two additional types not found in dBASE:  single
  5191.           key and time.  These two types are considered equivalent to
  5192.           character fields.
  5193.  
  5194.           Also memo fields cannot be used by formulas and formulas cannot
  5195.           evaluate to a "memo type".
  5196.  
  5197.           B. Constants
  5198.           ============
  5199.  
  5200.           Constants have a fixed value and do not change.  There are 4
  5201.           types of constants that may be used in expressions.  They are the
  5202.           numeric, character, date or logical constants.
  5203.  
  5204.           Numeric Constants
  5205.           -----------------
  5206.  
  5207.           The numeric constant represents a number.  Some examples are: 
  5208.           -7, 8.5 and 20.
  5209.  
  5210.           Character Constants
  5211.           -------------------
  5212.  
  5213.           Character constants are letters enclosed within a set of quotes. 
  5214.           They may be enclosed within double or single quotes.  However,
  5215.           the set of quotes used must have its matching counterpart at the
  5216.           beginning and at the end.  For example, "Mary Brown" or 'Mary
  5217.           Brown' would be legitimate.  Also, if you need to use a set of
  5218.           quotes within a set of quotes, you would distinguish them by
  5219.  
  5220.           
  5221.                                                                     Page 85
  5222.  
  5223.           using one type of quotes inside another type of quotes.  For
  5224.           example, "Mary Brown's" or '"Please"' are legitimate character
  5225.           constants.
  5226.  
  5227.           Logical Constants
  5228.           -----------------
  5229.  
  5230.           Logical constants are the values in a logical field.  For
  5231.           example, .TRUE., .FALSE., .T., .F.  would be legitimate logical
  5232.           constants.  Note that the periods must be included as part of the
  5233.           constant.
  5234.  
  5235.           Date Constants
  5236.           --------------
  5237.  
  5238.           Date constants cannot be represented by themselves.  A date
  5239.           constant can only be represented by using the function CTOD to
  5240.           convert a character constant in the form "CCYYMMDD" to a date. 
  5241.           For example the date July 4, 1990 is represented by the function
  5242.           CTOD("19900704").
  5243.  
  5244.           C. Operators
  5245.           ============
  5246.  
  5247.           Operators are the symbols that manipulate elements of formulas. 
  5248.           These symbols may represent numeric, string, relational and
  5249.           logical operations.  For example, the + (plus) sign is a  numeric
  5250.           operator in the expression:  72 + 24.
  5251.  
  5252.           The order of precedence refers to the priority of an operator
  5253.           when evaluating a formula that contains more than one operator. 
  5254.           The operator with the higher priority will be evaluated first. 
  5255.           For example, in the expression 4 + 8/2, the divide operator has a
  5256.           higher priority than the plus operator.  Thus, 4 + 8/2 = 8.
  5257.  
  5258.           All formulas are evaluated from left to right.  Subformulas that
  5259.           are enclosed in () brackets will be evaluated first, with
  5260.           operators being evaluated by their order of precedence.
  5261.  
  5262.  
  5263.  
  5264.  
  5265.  
  5266.  
  5267.  
  5268.  
  5269.  
  5270.  
  5271.  
  5272.  
  5273.  
  5274.  
  5275.  
  5276.  
  5277.  
  5278.           
  5279.                                                                     Page 86
  5280.  
  5281.  
  5282.           The four basic types of operators are numeric, string,
  5283.           relational, and logical operators.  Their order of precedence is
  5284.           shown on the following table.
  5285.  
  5286.           =================================================================
  5287.           Type           Operator Name       Symbol or Name      Order of
  5288.                                                                  Precedence
  5289.           -----------------------------------------------------------------
  5290.           Numeric        Sign (positive or
  5291.                          negative) of a
  5292.                          numeric expression       Unary +,-           7
  5293.                          Exponentiation           ** or ^             7
  5294.                          Multiply                      *              6
  5295.                          Divide                        /              6
  5296.                          Add                           +              5
  5297.                          Subtract                      -              5
  5298.           String         Concatenate I                 +              5
  5299.                          Concatenate II                -              5
  5300.           Relational     Equal to                      =              4
  5301.                          Not Equal to             <> or #             4
  5302.                          Less Than                     <              4
  5303.                          Greater Than                  >              4
  5304.                          Less Than or Equal To         <=             4
  5305.                          Greater Than or Equal To      >=             4
  5306.                          Substring Comparison          $              4
  5307.           Logical        And                      .AND.               3
  5308.                          Or                       .OR.                2
  5309.                          Not                      .NOT.               1
  5310.           =================================================================
  5311.  
  5312.  
  5313.  
  5314.  
  5315.  
  5316.  
  5317.  
  5318.  
  5319.  
  5320.  
  5321.  
  5322.  
  5323.  
  5324.  
  5325.  
  5326.  
  5327.  
  5328.  
  5329.  
  5330.  
  5331.  
  5332.  
  5333.  
  5334.  
  5335.  
  5336.           
  5337.                                                                     Page 87
  5338.  
  5339.  
  5340.           The following table shows some examples of operators.
  5341.  
  5342.           =================================================================
  5343.           Operator Type       Action                   Example
  5344.           -----------------------------------------------------------------
  5345.           Numeric             operates on 
  5346.                               numeric values           4 + 4 returns 8
  5347.           String
  5348.            Concatenate I      connects two 
  5349.                               character values 
  5350.                               end to end, retaining 
  5351.                               all spaces in each 
  5352.                               value.                   "Mary " + "Brown"
  5353.                                                        becomes "Mary Brown"
  5354.            Concatenate II     connects two character 
  5355.                               values into one, moving 
  5356.                               all spaces at the end of 
  5357.                               the first character value 
  5358.                               to the end of the 
  5359.                               combined value.          "Mary " - "Brown"
  5360.                                                        becomes "MaryBrown "
  5361.           Relational          used to return a logical 
  5362.                               (TRUE or FALSE) result.  
  5363.                               These operators operate on 
  5364.                               numeric, character or date 
  5365.                               values.  However, both 
  5366.                               values being compared must 
  5367.                               be of the same type.  
  5368.                               These operators are 
  5369.                               primarily used in data 
  5370.                               search routines.         9>20 returns FALSE
  5371.                               The Substring Comparison 
  5372.                               operator operates on two 
  5373.                               character values. It is 
  5374.                               used in logical conditions. 
  5375.                               It returns a TRUE value if 
  5376.                               the first value is equal 
  5377.                               to, or found within the 
  5378.                               second value.            "Mary" $ "Mary
  5379.                                                        Brown" returns TRUE
  5380.           Logical             will return a logical 
  5381.                               result and ties two logical 
  5382.                               values together. Primarily 
  5383.                               used in data search 
  5384.                               routines.                1=1 .AND. 2=2
  5385.                                                        returns TRUE
  5386.           =================================================================
  5387.  
  5388.  
  5389.  
  5390.  
  5391.  
  5392.  
  5393.  
  5394.           
  5395.                                                                     Page 88
  5396.  
  5397.  
  5398.           D. Functions
  5399.           ============
  5400.  
  5401.           Functions may be recognized easily because they always have a
  5402.           function name and are followed by a left and right bracket. 
  5403.           There may also be specific values or parameters enclosed within
  5404.           the left and right brackets.  These are called arguments of the
  5405.           function.  The arguments must be of a specific type, such as a
  5406.           character, numeric or date type.
  5407.  
  5408.           You will note that some functions do not have arguments in their
  5409.           brackets.  However, to differentiate a function from a field
  5410.           name, functions that have no arguments will have a set of empty
  5411.           brackets following their function name.
  5412.  
  5413.           The following is a list of the functions that PRO-dVelBase will
  5414.           permit you to use.  The function names may be either upper or
  5415.           lower case.
  5416.  
  5417.           ABS(Num_Value)
  5418.           --------------
  5419.           Returns the absolute value of a numeric value.
  5420.  
  5421.                e.g.  ABS(-30) returns 30
  5422.  
  5423.           ASC(Char_Value)
  5424.           ---------------
  5425.           Returns the ASCII value of the leftmost character of a character
  5426.           value.
  5427.                e.g. ASC("Jones") returns 74
  5428.  
  5429.           AT(Char_Value1, Char_Value2)
  5430.           ----------------------------
  5431.  
  5432.           Returns the starting position, as a numeric value, of the first
  5433.           character value within the second character value.
  5434.                e.g. AT("XYZ","ABCXYZ") returns 4
  5435.  
  5436.           CDOW(Date_Value)
  5437.           ----------------
  5438.           Returns the name of the day of week as a character string from
  5439.           the given date.
  5440.                e.g. CDOW(DATE()) If the date is Monday, December 3, the
  5441.                     function returns "Monday".
  5442.  
  5443.           CHR(Num_Value)
  5444.           --------------
  5445.           Converts a numeric value to its corresponding ASCII character
  5446.           value.
  5447.                e.g. CHR(80) returns "P"
  5448.  
  5449.  
  5450.  
  5451.  
  5452.           
  5453.                                                                     Page 89
  5454.  
  5455.  
  5456.           CMONTH(Date_Value)
  5457.           ------------------
  5458.           Returns the name of the month as a character value from the given
  5459.           date.
  5460.                e.g.  CMONTH(DATE()) returns "January" if today is January
  5461.                     10, 1990
  5462.  
  5463.           CTOD(Char_Value)
  5464.           ----------------
  5465.           Character to Date.  Converts a character value to a date value. 
  5466.           The character value would be in the format "CCYYMMDD".
  5467.                e.g. CTOD("19901203")
  5468.  
  5469.           DATE()
  5470.           ------
  5471.           Returns the system date in the format CCYYMMDD.
  5472.  
  5473.           DAY(Date_Value)
  5474.           ---------------
  5475.           Returns the numeric value of the day from the given date.
  5476.                e.g.  DAY(DATE()) returns 10 if today is January 10, 1990
  5477.  
  5478.           DBF()
  5479.           -----
  5480.           Returns the name of the current database file that you are using.
  5481.                e.g.  DBF() returns "CUSTOMER.DBF" if you have selected and
  5482.                     are currently using the customer database.
  5483.  
  5484.           DEL()
  5485.           -----
  5486.           Returns a "*" to indicate that the current record is marked for
  5487.           deletion.  Returns " " if the current record is not marked for
  5488.           deletion.
  5489.  
  5490.           DELETED()
  5491.           ---------
  5492.           Returns TRUE to indicate that the current record is marked for
  5493.           deletion otherwise it returns FALSE.
  5494.  
  5495.           DOW(Date_Value)
  5496.           ---------------
  5497.           Returns the day of week as a numeric from the given date.  Sunday
  5498.           is considered day 0.
  5499.                e.g. DOW(DATE()) If the date is Monday, December 3, the
  5500.                     function returns 1.
  5501.  
  5502.           DTOC(Date_Value) and DTOS(Date_Value)
  5503.           -------------------------------------
  5504.           Date to Character and Date to String.  Converts a date value to a
  5505.           character value.  The resulting character value will have the
  5506.           format "CCYYMMDD".
  5507.                e.g. DTOC(DATE()) If the date was December 3, 1990 the
  5508.                     resulting character value would be "19901203".
  5509.  
  5510.           
  5511.                                                                     Page 90
  5512.  
  5513.           EXP(Num_Value)
  5514.           --------------
  5515.           Exponential value.  Returns the exponential value of the numeric
  5516.           value.
  5517.                e.g. EXP(1) returns 2.71828183
  5518.  
  5519.           FIELD(Num_Value)
  5520.           ----------------
  5521.           Returns the fieldname of the field whose position, in the
  5522.           database structure, corresponds to the position of the given
  5523.           numeric value.
  5524.                e.g. Field(3)  If PHONE_NO is the third field defined in a
  5525.                     file called CUSTOMER.DBF, then this returns "PHONE_NO".
  5526.  
  5527.           IIF(Condition, Expression1, Expression2)
  5528.           ----------------------------------------
  5529.           Immediate-if function.  Returns Expression1 if and only if the
  5530.           condition evaluates TRUE; otherwise, it returns Expression2.
  5531.                e.g.  IIF(cost>1000,"high cost","low cost")
  5532.                          Returns "high cost" if and only if cost is greater
  5533.                          than 1000; otherwise, it returns "low cost."
  5534.  
  5535.           INT(Num_Value)
  5536.           --------------
  5537.           Converts the given numeric value to an integer.
  5538.                e.g. INT(4.1797) returns 4
  5539.  
  5540.           ISALPHA(Char_Value)
  5541.           -------------------
  5542.           Returns the logical value, TRUE, if the Char_Value begins with an
  5543.           alpha character.  Otherwise, the logical value, FALSE, is
  5544.           returned.
  5545.                e.g. ISALPHA("123-xyz") returns FALSE
  5546.  
  5547.           ISLOWER(Char_Value)
  5548.           -------------------
  5549.           Returns the logical value, TRUE, if the leftmost character is in
  5550.           lower case.  Otherwise, the logical value, FALSE, is returned.
  5551.                e.g. ISLOWER("aBcD") returns TRUE
  5552.                     ISLOWER("ABC") returns FALSE
  5553.  
  5554.           ISUPPER(Char_Value)
  5555.           -------------------
  5556.           Returns the logical value, TRUE, if the leftmost character is in
  5557.           upper case.  Otherwise, the logical value, FALSE, is returned.
  5558.                e.g. ISUPPER("abc") returns FALSE
  5559.                     ISUPPER("ABC") returns TRUE
  5560.  
  5561.           LEFT(Char_Value, Number of characters from left)
  5562.           ------------------------------------------------
  5563.           Returns the given character value, showing only the specified
  5564.           number of characters from the left.
  5565.                e.g. LEFT("Mary Smith",4) returns "Mary"
  5566.  
  5567.  
  5568.           
  5569.                                                                     Page 91
  5570.  
  5571.           LEN(Char_Value)
  5572.           ---------------
  5573.           Returns the length of the character value.
  5574.                e.g. LEN("Mary Smith") returns 10
  5575.  
  5576.           LOG(Num_Value)
  5577.           --------------
  5578.           Returns the natural logarithm of the numeric value.
  5579.                e.g. LOG(2.71828183) returns 1
  5580.  
  5581.           LOWER(Char_Value)
  5582.           -----------------
  5583.           Converts all upper case alpha characters to lower case.
  5584.                e.g. LOWER("Mary Smith") returns "mary smith"
  5585.  
  5586.           LTRIM(Char_Value)
  5587.           -----------------
  5588.           Trims leading blanks from the character value.
  5589.                e.g. LTRIM("   Hello") returns "Hello"
  5590.  
  5591.           MAX(Num_Value1, Num_Value2)
  5592.           ---------------------------
  5593.           Returns the larger of the two numeric values that are compared.
  5594.                e.g. MAX(4.97, 5.97) returns 5.97
  5595.  
  5596.           MIN(Num_Value1, Num_Value2)
  5597.           ---------------------------
  5598.           Returns the smaller of the two numeric values that are compared.
  5599.                e.g. MIN(4.97, 5.97) returns 4.97
  5600.  
  5601.           MOD(Num_Value1, Num_Value2)
  5602.           ---------------------------
  5603.           Returns the integer remainder that is left when you divide
  5604.           Num_Value1 by Num_Value2.
  5605.                e.g. MOD(16,4) returns 0
  5606.                     MOD(15,4) returns 3
  5607.  
  5608.           MONTH(Date_Value)
  5609.           -----------------
  5610.           Returns the numeric value of the month from the given date. 
  5611.           January is considered month 1.
  5612.                e.g. MONTH(DATE()) returns 1 if today is January 10, 1990
  5613.  
  5614.           RECCOUNT()
  5615.           ----------
  5616.           Record count function.  Counts the total number of records in the
  5617.           database and returns the number count.
  5618.                e.g. RECCOUNT() will return 8000 if there are 8000 records
  5619.                     in the database.
  5620.  
  5621.           RECNO()
  5622.           -------
  5623.           Record number function.  Reads the record number of the current
  5624.           record and returns that record number.
  5625.  
  5626.           
  5627.                                                                     Page 92
  5628.  
  5629.           RIGHT(Char_Value, Number of characters from right)
  5630.           --------------------------------------------------
  5631.           Returns the given character value, showing only the specified
  5632.           number of characters from the right.
  5633.                e.g. RIGHT("Mary Smith",5) returns "Smith"
  5634.  
  5635.           ROUND(Num_Value1, Num_Value2)
  5636.           -----------------------------
  5637.           Rounds off Num_Value1 so that it will show the number of decimal
  5638.           places as specified by Num_Value2.
  5639.                e.g. ROUND(4.797970, 3) returns 4.798
  5640.  
  5641.           RTRIM(Char_Value)
  5642.           -----------------
  5643.           Trims trailing blanks from the character value.
  5644.                e.g. RTRIM("Smith   ") returns "Smith"
  5645.  
  5646.           SPACE(Num_Value)
  5647.           ----------------
  5648.           Adds the number of spaces as specified by the numeric value.
  5649.                e.g. FIRST_NAME + SPACE(1) + LAST_NAME  If the first name
  5650.                     was Mary and the last name was Smith, this returns
  5651.                     "Mary Smith".
  5652.  
  5653.           SQRT(Num_Value)
  5654.           ---------------
  5655.           Returns the square root of the numeric value.
  5656.                e.g. SQRT(9) returns 3.
  5657.  
  5658.           STR(Num_Value, Length, Decimals)
  5659.           --------------------------------
  5660.           String function.  Converts a numeric value into a character value
  5661.           and displays it according to the specified length and decimal
  5662.           place stated in the function.  The length indicates the number of
  5663.           characters allowed, including the decimal and unary +/-.  The
  5664.           decimals indicate the number of decimal places allowed.  If the
  5665.           resulting string contains more characters than the length of
  5666.           characters permitted, then *'s will be returned.
  5667.                e.g. STR(4.16345,5,3) returns "4.163".
  5668.  
  5669.           SUBSTR(Char_Value, Starting Position, Number of Characters)
  5670.           -----------------------------------------------------------
  5671.           The substring function returns a portion of the given character
  5672.           value.  The character value will start at the Starting Position
  5673.           and be the length specified by the Number of Characters.
  5674.                e.g. SUBSTR("XYZ",2,1) returns "Y"
  5675.                     SUBSTR("Mary Brown",7,3) returns "row"
  5676.  
  5677.           TIME()
  5678.           ------
  5679.           Time function.  Returns the system time as a character value in
  5680.           the format HHMMSS.
  5681.                e.g. TIME() returns "090000" if it is 9:00 a.m.
  5682.  
  5683.  
  5684.           
  5685.                                                                     Page 93
  5686.  
  5687.           UPPER(Char_Value)
  5688.           -----------------
  5689.           Converts a character string to upper case.
  5690.  
  5691.           VAL(Char_Value)
  5692.           ---------------
  5693.           Converts a character value to a numeric value.
  5694.                e.g. VAL("-7") returns -7
  5695.                     VAL("18") returns 18
  5696.  
  5697.           YEAR(Date_Value)
  5698.           ----------------
  5699.           Returns the numeric value of the year from the given date.
  5700.                e.g. YEAR(DATE()) returns 1990 if today is January 10, 1990
  5701.  
  5702.  
  5703.  
  5704.  
  5705.  
  5706.  
  5707.  
  5708.  
  5709.  
  5710.  
  5711.  
  5712.  
  5713.  
  5714.  
  5715.  
  5716.  
  5717.  
  5718.  
  5719.  
  5720.  
  5721.  
  5722.  
  5723.  
  5724.  
  5725.  
  5726.  
  5727.  
  5728.  
  5729.  
  5730.  
  5731.  
  5732.  
  5733.  
  5734.  
  5735.  
  5736.  
  5737.  
  5738.  
  5739.  
  5740.  
  5741.  
  5742.           
  5743.                                                                     Page 94
  5744.  
  5745.  
  5746.                        Appendix C:  Warning and Error Messages
  5747.                        =======================================
  5748.  
  5749.           Warning messages indicate something adverse may happen if you
  5750.           proceed.  It is possible to proceed as long as you are aware of
  5751.           the consequences.
  5752.  
  5753.           Error messages will not allow you to proceed unless the error is
  5754.           corrected.
  5755.  
  5756.           A. Warning Messages
  5757.           ===================
  5758.  
  5759.           Error Formula Evaluates to False.  Save Anyways?
  5760.                An error formula on the form evaluates to FALSE.  The record
  5761.                may be saved anyways or else the field value re-entered.
  5762.  
  5763.           Field Definition File Already Exists.  Continue Setup?
  5764.                A setup was attempted on a .DBF file that has an associated
  5765.                .FLD file.  The previous .FLD file will be deleted if the
  5766.                Utilities/Setup operation is done.
  5767.  
  5768.           Foreign Key Field of Different Length.  Relate Anyways?
  5769.                The common key fields between a parent and child database
  5770.                files should be of the same length.  If they are not of the
  5771.                same length, errors may occur in linking the two databases. 
  5772.                Try to change the field length of the key in either the
  5773.                parent or child so they match.  
  5774.  
  5775.           Possible Circular Reference.  Save Anyways?
  5776.                A circular reference is when a formula refers to another
  5777.                field with a formula that ultimately refers back to the
  5778.                original formula.  Saving a circular reference will
  5779.                generally cause errors but there may be some cases where a
  5780.                circular reference would be the best way to define the form. 
  5781.                It is recommended to try the form out with a few records
  5782.                first to see if the calculations evaluate correctly.
  5783.  
  5784.           Record(s) Changed.  Save?
  5785.                The current record(s) has been changed.  The changes may be
  5786.                saved or discarded.
  5787.  
  5788.           Required Field Not Filled.  Save Anyways?
  5789.                A form has a required field that was not filled.  The record
  5790.                may be saved or the required field have a field value
  5791.                entered.
  5792.  
  5793.           Warning.  Destination Will Be Overwritten.  Proceed?
  5794.                An attempt was made to copy or move a block to a target with
  5795.                text or field present.  The target text or fields will be
  5796.                overwritten.
  5797.  
  5798.  
  5799.  
  5800.           
  5801.                                                                     Page 95
  5802.  
  5803.  
  5804.           WARNING!  Data Files Will Be Deleted.  Continue?
  5805.                Deleting the form will delete the primary database file.  A
  5806.                lot of data may be lost therefore be careful when you choose
  5807.                this option.
  5808.  
  5809.           WARNING!  File Exists.  Replace?
  5810.                The output file name already exists on the current
  5811.                directory.  This will overwrite the previous file.
  5812.  
  5813.           WARNING!  This Will Remove All Records.  Continue?
  5814.                The zap function will remove all records from the primary
  5815.                database file.  A lot of data may be lost therefore be
  5816.                careful when you choose this option.
  5817.  
  5818.           B. Error Messages
  5819.           =================
  5820.  
  5821.           The following is a list of PRO-dVelBase error messages.
  5822.  
  5823.           Catalog File Not Found.
  5824.                The associated catalog file with .CAT extension could not be
  5825.                found for the selected form.  It may have been deleted from
  5826.                the DOS level.  The catalog file may be re-created by
  5827.                modifying the selected form and saving it again.
  5828.  
  5829.           Database File is Missing a Field.
  5830.                One of the field description files (.FLD extension) has an
  5831.                extra field not found in its corresponding database file
  5832.                (.DBF extension).  This is generally remedied by running the
  5833.                Utilities/Setup function on the offending database file and
  5834.                re-creating the field description files and screen
  5835.                description files (.SCN extension).
  5836.  
  5837.           Database Not Located While Evaluating Formula.
  5838.                The database file specified in the formula was not located.
  5839.  
  5840.           Duplicate Key Value Not Allowed.
  5841.                The entered field value is already present in another record
  5842.                within the database file.  This error message will only
  5843.                occur if the current field is indexed and the "Prevent
  5844.                Duplicate Entries" question is answered YES.
  5845.  
  5846.           Error Building Index.
  5847.                This error indicates that there was either insufficient
  5848.                memory or there were too many records in the database to
  5849.                index.
  5850.  
  5851.           Error Closing Index.
  5852.                This error indicates that an index file could not be closed. 
  5853.                Try reindexing the form.
  5854.  
  5855.  
  5856.  
  5857.  
  5858.           
  5859.                                                                     Page 96
  5860.  
  5861.  
  5862.           Error in Printer Code String.
  5863.                The string of printer codes entered has one or more wrong
  5864.                codes.
  5865.  
  5866.           Executing Null Formula.
  5867.                Execution of a null formula was attempted.
  5868.  
  5869.           Expecting ',' or '(' While Evaluating Formula.
  5870.                The formula is probably missing a comma or a left bracket.
  5871.  
  5872.           Extra Field(s) in Selected File.
  5873.                The currently selected object has extra field(s) not found
  5874.                in the selected form.  This may be corrected by modifying
  5875.                the object and deleting the extra fields.
  5876.  
  5877.           Field Not Found in Underlying Form.
  5878.                The cause of this error depends upon where it was generated. 
  5879.                If in the form, it generally indicates a field that has been
  5880.                deleted in a related form.  If in one of the other objects,
  5881.                then it indicates the field has been deleted from the
  5882.                currently selected form.  This error may be corrected by
  5883.                deleting the offending field.
  5884.  
  5885.           Field Length Mismatch or Field Type Mismatch.
  5886.                A discrepancy exists between the field length or type
  5887.                described in one file compared with the field length or type
  5888.                described in a second file.  In the form selection, this may
  5889.                occur when one of the fields in the field description file
  5890.                (.FLD extension) has a length or type that does not match
  5891.                the length or type in the corresponding database file (.DBF
  5892.                extension).  This is generally remedied by running the
  5893.                Utilities/Setup function on the offending database file and
  5894.                re-creating the field description files and screen
  5895.                description files (.SCN extension).  If this error occurs in
  5896.                other objects, the object should be modified, and the
  5897.                offending field corrected or deleted.  Generally this error
  5898.                occurs when a field length or type has been altered and
  5899.                there are related files that also reference the altered
  5900.                field.
  5901.  
  5902.           Field of Given Type Not Present.
  5903.                This error occurs in the process of creating an append or
  5904.                post file.  It indicates that no fields of the appropriate
  5905.                field type are present.
  5906.  
  5907.           Fieldname Already Used.
  5908.                Each field in a database file must have a unique name.
  5909.  
  5910.           File Closing Error.
  5911.                Unable to close a file.  Generally indicates a corrupted
  5912.                file or a disk failure.
  5913.  
  5914.  
  5915.  
  5916.           
  5917.                                                                     Page 97
  5918.  
  5919.  
  5920.           File Creation Error.
  5921.                This error may be caused by a full directory or a disk
  5922.                failure.
  5923.  
  5924.           File Does Not Exist.
  5925.                The selected file does not exist on the current directory. 
  5926.                This may occur if the file has been deleted from the DOS
  5927.                level but its name is still in the catalog.  The file name
  5928.                has to be removed from the catalog and the file re-created.
  5929.  
  5930.           File Name Already Used.
  5931.                The given file name already exists and a different one must
  5932.                be used.
  5933.  
  5934.           File Name is a Reserved Word.
  5935.                An attempt was made to use a reserved word as a file name. 
  5936.                The words "CAL_F", "CAL_R" and "CAL_L" are reserved by
  5937.                PRO-dVelBase for internal use to represent calculated
  5938.                fields.
  5939.  
  5940.           File Not Found.
  5941.                The requested file was not found on the current directory.
  5942.  
  5943.           File Opening Error.
  5944.                The requested file does not exist and may have been deleted
  5945.                at the DOS level.  Another possible cause is an insufficient
  5946.                number of file handles.  Try increasing the number of opened
  5947.                files allowed by using the command "FILES=60" in the
  5948.                CONFIG.SYS file and restarting the computer.
  5949.  
  5950.           File Reading Error.
  5951.                A read error could be caused by a disk failure.
  5952.  
  5953.           File Writing Error.
  5954.                A write error will occur when the disk is full.
  5955.  
  5956.           Formula is Not Complete.
  5957.                The formula could not be evaluated because it is incomplete.
  5958.  
  5959.           Help File Not Found.
  5960.                The PRO.HLP file could not be found.
  5961.  
  5962.           Illegal Date in Formula.
  5963.                An illegal date was encountered when evaluating a date
  5964.                value.
  5965.  
  5966.           Incompatible File Type.
  5967.                An attempt was made to open a non-PRO-dVelBase file.  The
  5968.                offending file must be deleted and re-created.
  5969.  
  5970.           Index File is Missing a Key.
  5971.                The index file key of a database record does not exist.
  5972.  
  5973.  
  5974.           
  5975.                                                                     Page 98
  5976.  
  5977.           Insufficient Memory.
  5978.                This is a fatal error and immediately exits to DOS after it
  5979.                is encountered.  Either the amount of RAM has to be
  5980.                increased, any TSR programs unloaded or the form has to be
  5981.                simplified and some of the relationships removed.
  5982.  
  5983.           Insufficient Space for Field Placement.
  5984.                There is insufficient space at the current position of the
  5985.                form to place a field of the defined length.
  5986.  
  5987.           INTERNAL ERROR NUMBER:
  5988.                This indicates an unresolvable error.  Please contact
  5989.                Accelerated Software with the details.
  5990.  
  5991.           Invalid Date.
  5992.                The entered date is incorrect.
  5993.  
  5994.           Invalid Number.
  5995.                The entered number is incorrect.
  5996.  
  5997.           Invalid Operation for Given Field Type.
  5998.                This error may occur in creating a post file.  Only numeric
  5999.                field types are allowed to be added or subtracted.
  6000.  
  6001.           Invalid Time.
  6002.                The entered time is incorrect.
  6003.  
  6004.           Key Field Already Defined.
  6005.                Only one key field allowed in a post file.
  6006.  
  6007.           Key Field Must Be Indexed.
  6008.                This error may occur when creating a post file.  The field
  6009.                in the target database must be indexed before it can be
  6010.                posted to.
  6011.  
  6012.           Key Value Doesn't Exist.
  6013.                The entered value does not exist in the related database
  6014.                file.  This error will only occur if question "Reject if
  6015.                value doesn't exist in related database" is answered YES.
  6016.  
  6017.           Key Length Over 100 Characters.
  6018.                Index files allow for a maximum of 100 characters for the
  6019.                key.
  6020.  
  6021.           Logical Update Field Not Present in Source Database.
  6022.                If a logical field is to be updated when appending or
  6023.                posting, the field must first be defined in the source
  6024.                database.
  6025.  
  6026.           Maximum Number of Printer Files Already Defined.
  6027.                A maximum of 26 printer files allowed.
  6028.  
  6029.           Maximum of 127 Fields.
  6030.                A maximum of 127 fields allowed per database object.
  6031.  
  6032.           
  6033.                                                                     Page 99
  6034.  
  6035.           Maximum of 5 Database Files Per Form.
  6036.                A maximum of 5 related database files allowed per form.
  6037.  
  6038.           Maximum of 20 Records in a One-To-Many Relationship.
  6039.                The current version of PRO-dVelBase allows a maximum of 20
  6040.                records on the many side of a one-to-many relationship.
  6041.  
  6042.           Memo File Missing.
  6043.                The memo file (with .DBT extension) for the current database
  6044.                file could not be found.  It was probably deleted at the DOS
  6045.                level.
  6046.  
  6047.           Multiple Field Copies Not Allowed.
  6048.                This error occurs in the process of creating or modifying a
  6049.                form.  Multiple copies of the same field are found on the
  6050.                form.  The user was probably attempting to create another
  6051.                field with similar definitions by blocking and copying. 
  6052.                This process, however, will create another field with the
  6053.                same field name which is not allowed.  The offending field
  6054.                must be deleted and re-defined.
  6055.  
  6056.           No Files Found.
  6057.                No files could be found on the current directory.
  6058.  
  6059.           No End Formula Character.
  6060.                The dBASE expression is not sandwiched between the formula
  6061.                character (ASCII 20) in a letter.
  6062.  
  6063.           No Index For Present Field.
  6064.                Unable to perform an indexed search because current field
  6065.                lacks an index.
  6066.  
  6067.           No Indexes For Related Database.
  6068.                Unable to view the related database in indexed table view
  6069.                because it does not have any indexes.
  6070.  
  6071.           No Key Fields Present.
  6072.                This error occurs in the process of relating forms and
  6073.                indicates that no indexed fields are present.
  6074.  
  6075.           No Record(s) Found.
  6076.                No records found that match specified criteria.
  6077.  
  6078.           No Selected Label.
  6079.                There is no label file in the work area.
  6080.  
  6081.           No Selected Mail.
  6082.                There is no mail file in the work area.
  6083.  
  6084.           No Selected Report.
  6085.                There is no report file in the work area.
  6086.  
  6087.           Not a Textfile.
  6088.                Cannot import a non-textfile into mail merge.
  6089.  
  6090.           
  6091.                                                                    Page 100
  6092.  
  6093.           Only One Memo Field Allowed Per Form.
  6094.                Only one memo field may be defined per form.
  6095.  
  6096.           Overflow While Evaluating Formula.
  6097.                The formula is too large or too complex for PRO-dVelBase to
  6098.                evaluate.
  6099.  
  6100.           Overlay File Not Found.
  6101.                Overlay file for PRO-dVelBase could not be found.
  6102.  
  6103.           Parameter or Operator has the Wrong Type.
  6104.                Type checking for formulas occur at run time.  The formula
  6105.                has a type mis-match.
  6106.  
  6107.           Path Not Found.
  6108.                The specified path could not be found.
  6109.  
  6110.           Picture Too Short.
  6111.                A picture must have the same number of user entered
  6112.                characters as the length of the field.
  6113.  
  6114.           Posting Requires a Key Field.
  6115.                An attempt was made to save a post file without a key field. 
  6116.                One key field must be defined for each post file.
  6117.  
  6118.           PRO.PRT File Not Available.
  6119.                Unable to find the main printer definition file.
  6120.  
  6121.           Range Error.
  6122.                The field value is beyond the specified range allowed for
  6123.                the field.
  6124.  
  6125.           Right Bracket Missing in Formula.
  6126.                The formula requires equal number of right brackets as left
  6127.                brackets.
  6128.  
  6129.           Selected Object Not Found in Catalog.
  6130.                Catalog does not contain any of the selected objects.  They
  6131.                must either be created or added to the catalog.
  6132.  
  6133.           Text File Too Long.
  6134.                Maximum length of text file allowed is 20,000 characters.
  6135.  
  6136.           Trying to Move Block Beyond Screen Window.
  6137.                The marked block will partially end up outside of the screen
  6138.                window.
  6139.  
  6140.           Unable to Create an Empty Database File.
  6141.                This error occurs when a form is saved with no fields in the
  6142.                primary database file.  Each database file must contain at
  6143.                least one field.
  6144.  
  6145.  
  6146.  
  6147.  
  6148.           
  6149.                                                                    Page 101
  6150.  
  6151.  
  6152.           Unrecognized Function in Formula.
  6153.                The formula has a function that is not recognized as a
  6154.                legitimate PRO-dVelBase function.
  6155.  
  6156.           Unrecognized Operator in Formula.
  6157.                The formula has an operator that is not recognized as a
  6158.                legitimate PRO-dVelBase operator.
  6159.  
  6160.           Unrecognized Value in Formula.
  6161.                The formula has a value that is not recognized as a field,
  6162.                string, number, logical value or function.
  6163.  
  6164.           Unterminated String in Formula.
  6165.                A character string must terminate with a right quote.
  6166.  
  6167.  
  6168.  
  6169.  
  6170.  
  6171.  
  6172.  
  6173.  
  6174.  
  6175.  
  6176.  
  6177.  
  6178.  
  6179.  
  6180.  
  6181.  
  6182.  
  6183.  
  6184.  
  6185.  
  6186.  
  6187.  
  6188.  
  6189.  
  6190.  
  6191.  
  6192.  
  6193.  
  6194.  
  6195.  
  6196.  
  6197.  
  6198.  
  6199.  
  6200.  
  6201.  
  6202.  
  6203.  
  6204.  
  6205.  
  6206.           
  6207.                                                                    Page 102
  6208.  
  6209.  
  6210.                            Appendix D:  PRO-dVelBase Files
  6211.                            ===============================
  6212.  
  6213.           The following is a list of files present in PRO-dVelBase or
  6214.           created by PRO-dVelBase.  The '*' will indicate any legitimate
  6215.           DOS file name.  Generally the name should also follow dBASE
  6216.           naming convention.
  6217.  
  6218.           A. Program Files
  6219.           ================
  6220.  
  6221.           PRO.EXE, PRO.OV1 and PRO.OV2
  6222.                These files represent the main program file along with its
  6223.                overlays.
  6224.  
  6225.           PRO.HLP
  6226.                PRO-dVelBase help file.
  6227.  
  6228.           PRO.PRT
  6229.                Main printer definition file.
  6230.  
  6231.           B. Created Files
  6232.           ================
  6233.  
  6234.           *.APP
  6235.                An append file stores the names of the database files and
  6236.                their associated fields which are to be appended.
  6237.  
  6238.           *.BAK and *.TBK
  6239.                These are the backup files to the main database files
  6240.                created when a form is modified.
  6241.  
  6242.           *.CAT
  6243.                This is a catalog file and contains the names of all
  6244.                associated files for a given form.
  6245.  
  6246.           *.DBF and *.DBT
  6247.                These are the main database files along with an associated
  6248.                memo field file.  These files are dBASE compatible.
  6249.  
  6250.           *.FLD
  6251.                This is the field definition file and contains all of the
  6252.                Fixed Field Definitions for a given form.
  6253.  
  6254.           *.LAB
  6255.                A label file which stores a given label design.
  6256.  
  6257.           *.LET
  6258.                A letter file used in the process of mail merge.
  6259.  
  6260.           *.NDX
  6261.                These are the index files for PRO-dVelBase and they are
  6262.                dBASE compatible.
  6263.  
  6264.           
  6265.                                                                    Page 103
  6266.  
  6267.           *.QCF
  6268.                This is a query condition file and stores created queries.
  6269.  
  6270.           *.QIF
  6271.                This is a query index file and is created once a query is
  6272.                executed.  It stores the record numbers of the records which
  6273.                match the conditions stored in *.QCF.
  6274.  
  6275.           A.PRT to Z.PRT
  6276.                The user created printer definition files.
  6277.  
  6278.           *.PST
  6279.                A post file stores the names of the database files and their
  6280.                associated fields which are to be posted.
  6281.  
  6282.           *.RPT
  6283.                This is a report file and stores the format of the
  6284.                previously created report.
  6285.  
  6286.           *.SCN
  6287.                A screen definition file stores the Changeable Field
  6288.                Definitions for a given form, field locations on the screen
  6289.                and the relationships with other database files.
  6290.  
  6291.  
  6292.  
  6293.  
  6294.  
  6295.  
  6296.  
  6297.  
  6298.  
  6299.  
  6300.  
  6301.  
  6302.  
  6303.  
  6304.  
  6305.  
  6306.  
  6307.  
  6308.  
  6309.  
  6310.  
  6311.  
  6312.  
  6313.  
  6314.  
  6315.  
  6316.  
  6317.  
  6318.  
  6319.  
  6320.  
  6321.  
  6322.           
  6323.                                                                    Page 104
  6324.  
  6325.                             Appendix E:  Trademark Notices
  6326.                             ==============================
  6327.  
  6328.            1.  PRO-dVelBase is a trademark of Accelerated Software
  6329.            2.  dBASE is a trademark of Borland International Inc.
  6330.            3.  Clipper is a trademark of Nantucket Corp.
  6331.            4.  CodeBase is a trademark of Sequiter Software.
  6332.            5.  dBXL is a trademark of WordTech Systems Inc.
  6333.            6.  Fox Base is a trademark of Fox Software.
  6334.            7.  MS-DOS is a trademark of Microsoft Corp.
  6335.            8.  PC-DOS is a trademark of IBM.
  6336.  
  6337.  
  6338.  
  6339.  
  6340.  
  6341.  
  6342.  
  6343.  
  6344.  
  6345.  
  6346.  
  6347.  
  6348.  
  6349.  
  6350.  
  6351.  
  6352.  
  6353.  
  6354.  
  6355.  
  6356.  
  6357.  
  6358.  
  6359.  
  6360.  
  6361.  
  6362.  
  6363.  
  6364.  
  6365.  
  6366.  
  6367.  
  6368.  
  6369.  
  6370.  
  6371.  
  6372.  
  6373.  
  6374.  
  6375.  
  6376.  
  6377.  
  6378.  
  6379.  
  6380.           
  6381.